mainpage revision 29747dfe5e073a299b3681e01f5c55540f8bfed7
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore// -*- C++ -*-
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore// $Id: mainpage,v 1.2 2006/12/22 01:44:59 marka Exp $
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore//
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore// Doxygen text. Lines beginning with two slashes are comments; lines
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore// beginning with three slashes are Doxygen input.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \mainpage
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \section mainpage_overview Overview
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \par
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// This is the beginning of an internals manual for BIND9. It's
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// still very rough in many places.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li See the files in doc/doxygen for the source to this page and
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// the Doxygen configuration that generates the rest of the manual.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li See the tabs at the top of the screen to navigate through the
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// generated documentation.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li See <a href="http://www.doxygen.org/">the Doxygen web site</a>
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// for more information about Doxygen, including its manual.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \section mainpage_knownissues Known Issues
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \par
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// Known issues with our current use of Doxygen:
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li In a major departure from previous attempts to use Doxygen
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// with BIND9, this manual attempts to take the simplest approach
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// to every choice Doxygen gives us. We don't generate fancy
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// extra Doxygen tags files from the RFC database. We don't
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// attempt to use Doxygen as a wrapper framework for other
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// documentation (eg, ISC Tech Notes, the ARM, ...). We don't
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// try to generate the list of files to document on the fly.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// Instead, we attempt to use Doxygen's native facilities
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// wherever possible, on the assumption that we'll add new
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// features later as we need them but should start as simply as
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// we can.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li Our use of \\file is wrong in many places. We probably should
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// be marking header files with the names by which we include
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// them (eg, "dns/resolver.h"). Doxygen reports filename
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// conflicts in a few cases where it can't work out which of
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// several files to use.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li At the moment we're instructing Doxygen to document all
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// functions, whether they have proper comment markup or not.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// This is a good way to see what's been marked up, but might not
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// be the right approach in the long run.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li See doc/doxygen/doxygen-input-filter.in for local abbreviations.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li We're probably over-using the \\brief markup tag.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li We may in fact be confusing Doxygen to the point where it's
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// not finding markup comments that it should. Needs
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// investigation.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li At the moment I have all the cool "dot" stuff turned off,
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// both because it's a distraction and because it slows down
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// doxygen runs. Maybe after I get a faster desk machine. :)
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li At the moment we're producing a single "BIND9 Internals"
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// manual. One of our previous complications was an attempt to
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// produce separate manuals for each library, then cross-link
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// them. We might still need separate library manuals, but, if
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// so, it might be easier to have the BIND9 Internals manual be a
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// superset of the library manuals (ie, reuse the same source to
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// produce differently scoped manuals). Would certainly be
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// simpler than the cross-linking mess, but partly it's a
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// question of how we want to present the material.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li Doxygen is slanted towards C++. It can be tuned towards plain
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// old C, but the C++ bias still shows up in places, eg, the lack
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// of top-level menu support for functions (in C++, the basic
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// unit of programming is the class, which Doxygen does support
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// directly). This is a bit annoying, but not all that
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// critical.
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore///
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// \li If we ever get really ambitious, we might try processing
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// Doxygen's XML output, which is basicly a dump of what Doxygen
4297a3b0d0a35d80f86fff155e288e885a100e6dGarrett D'Amore/// was able to scrape from the sources. This would be a major
/// project, just something to think about if there's something we
/// really don't like about the output Doxygen generates. Punt
/// for now.