Well, the cat's out of the bag already. Let's set a standard for exposed
functions that sit within modules.

Currently, in nsopenssl's case:

NsOpenSSL* functions are externed but are not to be called from outside the
module.

Ns_OpenSSL* functions are external APIs that can be called from anywhere.

All others (MakeSSLContext and such) are private to the .c file they're
defined in.


We can change the externals to:

NsmOpenSSL*  and  Nsm_OpenSSL*

where Nsm = Naviserver Module, and OpenSSL would be substituted for
whatever the module's name is.

This won't prevent name collisions between modules, but it will prevent
them between a module and the core.

Is this a big deal? Changing function names just to be consistent may be
viewed as a waste of time. I don't happen to think so. It helps when I go
read another module's sources if they follow a style consistent with the
core stuff. I'm probably outnumbered in this view.


/s.






> In a message dated 12/28/01 12:02:35 AM, [EMAIL PROTECTED] writes:
>
> >For C modules, simply create the C functions you want exposed from your
> >module as externs and call them Ns_SomeName. Just make sure you don't
> >conflict with a C function name that already exists in the core or in
other
> >modules. You do this by prepending something that you think is going to
> >be
> >unique. For the nsopenssl module, I've named all externally visible
> >functions as "Ns_OpenSSL*, where '*' is whatever you choose.
> >
>
>
> Hello,
>
> Actually, I would suggest not using the Ns_ prefix for your modules except
> for the required Ns_ModuleInit and Ns_ModuleVersion. The assumption was
that
> Ns_ external functions are public from the AOLserver core like Tcl_ is
public
> from Tcl core.  As long as other folks don't use Ns_ as a prefix, we only
> have to watch for conflicts with the AOLserver core functions.  I think
> there's been some cheating in the past, e.g., some of the database drivers
> used the Ns_ the prefix when they weren't in the core.  Also, nsopenssl
is so
> popular and has the unique Ns_OpenSSL prefix it's really not a problem.
>
> What we do here at AOL is follow the same code style but use a different
> prefix, e.g., Dci_ or Aol_ for our custom modules.
>
>
> -Jim
>
>
>

Reply via email to