coar 98/05/02 18:24:11
Added: apidoc README dict-ap_cpystrn.html
dict-ap_destroy_pool.html
dict-ap_make_sub_pool.html
Log:
Some initial population for the API docco development directory.
Seeds as it were..
Revision Changes Path
1.1 apache-devsite/apidoc/README
Index: README
===================================================================
This directory (apidoc) is the development area for an effort to document
the Apache Web server API (Application Programing Interface). In its
current incarnation, there are four types of files here:
. a data file (api.list) that contains a record for each API entity; this
file is internally documented as to format
. a template file (api-dict.html) which is used as the basis for the
assembled documentation
. HTML fragment files (e.g., dict-ap_destroy_pool.html), one per API
entity, that contain the actual documentation for the entities
. a Perl script (mkapi) which puts all of these together to generate a
single monolithic documentation file
There are currently four types of API entities defined: routines, constants,
structures, and global data cells.
The assembled output file labels each entity as a link target; the name
of the target is the entity name (e.g., HREF="#OK", HREF="ap_die").
Entity references in specifications and examples are automatically linked
to the appropriate definitions (e.g., the 'request_rec' text in the example
"ap_child_terminate(rerquest_rec *r)" is automatically a link to the
definition of the request_rec structure).
Documentation fragment files should look like this (leading whitespace
included):
<P>
..entity documentation..
</P>
<P>
..more docco..
</P>
1.1 apache-devsite/apidoc/dict-ap_cpystrn.html
Index: dict-ap_cpystrn.html
===================================================================
<P>
Copies at most <SAMP>numbytes</SAMP> of <SAMP>str</SAMP> to
<SAMP>buf</SAMP>.
Differs from <SAMP>strncpy()</SAMP> in that <SAMP>buf</SAMP> is
<EM>always</EM> null terminated, but is <EM>not</EM> null filled.
Therefore, <SAMP>buf</SAMP> should always be at least
<SAMP>numbytes + 1</SAMP> bytes long.
Returns a pointer to the terminating <SAMP>'\0</SAMP>'.
</P>
1.1 apache-devsite/apidoc/dict-ap_destroy_pool.html
Index: dict-ap_destroy_pool.html
===================================================================
<P>
This function will recursively destroy the specified
<A HREF="#pool">pool</A> allocation area and any sub-pools of it,
making any memory allocated to them available for use elsewhere.
</P>
1.1 apache-devsite/apidoc/dict-ap_make_sub_pool.html
Index: dict-ap_make_sub_pool.html
===================================================================
<P>
This function creates a new <A HREF="#pool">pool area</A>
for memory allocation. The
new area is considered to be a "child" of the pool
passed to the routine; this permits a hierarchy of related storage
areas. When a pool is destroyed (see
<A HREF="#ap_destroy_pool"><SAMP>ap_destroy_pool</SAMP></A>),
any sub-pools it may have are also destroyed recursively.
</P>
<P>
An example of when this hierarchy concept is useful can be found in the
<A HREF="http://www.apache.org/docs/mod/mod_autoindex.html"
>automatic directory listing module</A>. Since the module can't
tell in advance how many files it will have to list, nor how long the
names will be, nor what other functions might need to allocate memory
to process the request, it creates a sub-pool of the one associated
with the request, does the <em>per</EM>-filename processing in
it, and clears it for each new file.
</P>
<P>
If the pointer passed to <SAMP>ap_make_sub_pool</SAMP> is <CODE>NULL</CODE>,
a new top-level (<EM>i.e.</EM>, parentless) pool is created. This
is generally not recommended, however, since the only record of a
pool's existence is the pointer returned - a simple logic error can
result in pools being created and lost, along with any allocations
made in them. Most pools are created to deal with <EM>per</EM>-request
processing, and hence should be sub-pools of the request's pool
(<A HREF="#request_rec"><SAMP>r->pool</SAMP></A>) to ensure that
they are properly cleaned up on request completion.
</P>