documenting.xml revision 792a9ea1433c017cae367b7a42f7a667179c6f4f
792a9ea1433c017cae367b7a42f7a667179c6f4fnd<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd<manualpage>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd <p>Apache 2.0 uses <a href="http://www.doxygen.org/">Doxygen</a> to
792a9ea1433c017cae367b7a42f7a667179c6f4fnd document the APIs and global variables in the the code. This will explain
792a9ea1433c017cae367b7a42f7a667179c6f4fnd the basics of how to document using Doxygen.</p>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd <p>To start a documentation block, use <code>/**</code><br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd <p>In the middle of the block, there are multiple tags we can
792a9ea1433c017cae367b7a42f7a667179c6f4fnd Description of this functions purpose<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd @param parameter_name description<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd @return description<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd @deffunc signature of the function<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd </example>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd <p>The <code>deffunc</code> is not always necessary. DoxyGen does not
792a9ea1433c017cae367b7a42f7a667179c6f4fnd have a full parser in it, so any prototype that use a macro in the
792a9ea1433c017cae367b7a42f7a667179c6f4fnd return type declaration is too complex for scandoc. Those functions
792a9ea1433c017cae367b7a42f7a667179c6f4fnd require a <code>deffunc</code>. An example (using &gt; rather
792a9ea1433c017cae367b7a42f7a667179c6f4fnd than >):</p>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * return the final element of the pathname<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * @param pathname The path to get the final element of<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * @return the final element of the path<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * @tip Examples:<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * <pre><br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * "gum" -&gt; "gum"<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * "wi\\n32\\stuff" -&gt; "stuff"<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * </pre><br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * @deffunc const char * ap_filename_of_pathname(const char *pathname)<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd </example>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd * @package Name of library header<br />
792a9ea1433c017cae367b7a42f7a667179c6f4fnd </example>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd <p>Doxygen uses a new HTML file for each package. The HTML files are named
792a9ea1433c017cae367b7a42f7a667179c6f4fnd {Name_of_library_header}.html, so try to be concise with your names.</p>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd <p>For a further discussion of the possibilities please refer to
792a9ea1433c017cae367b7a42f7a667179c6f4fnd <a href="http://www.doxygen.org/">the Doxygen site</a>.</p>
792a9ea1433c017cae367b7a42f7a667179c6f4fnd</manualpage>