1*00b67f09SDavid van Moolenbroek// -*- C++ -*- 2*00b67f09SDavid van Moolenbroek// Id: mainpage,v 1.2 2006/12/22 01:44:59 marka Exp 3*00b67f09SDavid van Moolenbroek// 4*00b67f09SDavid van Moolenbroek// Doxygen text. Lines beginning with two slashes are comments; lines 5*00b67f09SDavid van Moolenbroek// beginning with three slashes are Doxygen input. 6*00b67f09SDavid van Moolenbroek 7*00b67f09SDavid van Moolenbroek/// \mainpage 8*00b67f09SDavid van Moolenbroek/// \section mainpage_overview Overview 9*00b67f09SDavid van Moolenbroek/// \par 10*00b67f09SDavid van Moolenbroek/// 11*00b67f09SDavid van Moolenbroek/// This is the beginning of an internals manual for BIND9. It's 12*00b67f09SDavid van Moolenbroek/// still very rough in many places. 13*00b67f09SDavid van Moolenbroek/// 14*00b67f09SDavid van Moolenbroek/// \li See the files in doc/doxygen for the source to this page and 15*00b67f09SDavid van Moolenbroek/// the Doxygen configuration that generates the rest of the manual. 16*00b67f09SDavid van Moolenbroek/// 17*00b67f09SDavid van Moolenbroek/// \li See the tabs at the top of the screen to navigate through the 18*00b67f09SDavid van Moolenbroek/// generated documentation. 19*00b67f09SDavid van Moolenbroek/// 20*00b67f09SDavid van Moolenbroek/// \li See <a href="http://www.doxygen.org/">the Doxygen web site</a> 21*00b67f09SDavid van Moolenbroek/// for more information about Doxygen, including its manual. 22*00b67f09SDavid van Moolenbroek/// 23*00b67f09SDavid van Moolenbroek/// \section mainpage_knownissues Known Issues 24*00b67f09SDavid van Moolenbroek/// \par 25*00b67f09SDavid van Moolenbroek/// 26*00b67f09SDavid van Moolenbroek/// Known issues with our current use of Doxygen: 27*00b67f09SDavid van Moolenbroek/// 28*00b67f09SDavid van Moolenbroek/// \li In a major departure from previous attempts to use Doxygen 29*00b67f09SDavid van Moolenbroek/// with BIND9, this manual attempts to take the simplest approach 30*00b67f09SDavid van Moolenbroek/// to every choice Doxygen gives us. We don't generate fancy 31*00b67f09SDavid van Moolenbroek/// extra Doxygen tags files from the RFC database. We don't 32*00b67f09SDavid van Moolenbroek/// attempt to use Doxygen as a wrapper framework for other 33*00b67f09SDavid van Moolenbroek/// documentation (eg, ISC Tech Notes, the ARM, ...). We don't 34*00b67f09SDavid van Moolenbroek/// try to generate the list of files to document on the fly. 35*00b67f09SDavid van Moolenbroek/// Instead, we attempt to use Doxygen's native facilities 36*00b67f09SDavid van Moolenbroek/// wherever possible, on the assumption that we'll add new 37*00b67f09SDavid van Moolenbroek/// features later as we need them but should start as simply as 38*00b67f09SDavid van Moolenbroek/// we can. 39*00b67f09SDavid van Moolenbroek/// 40*00b67f09SDavid van Moolenbroek/// \li Our use of \\file is wrong in many places. We probably should 41*00b67f09SDavid van Moolenbroek/// be marking header files with the names by which we include 42*00b67f09SDavid van Moolenbroek/// them (eg, "dns/resolver.h"). Doxygen reports filename 43*00b67f09SDavid van Moolenbroek/// conflicts in a few cases where it can't work out which of 44*00b67f09SDavid van Moolenbroek/// several files to use. 45*00b67f09SDavid van Moolenbroek/// 46*00b67f09SDavid van Moolenbroek/// \li At the moment we're instructing Doxygen to document all 47*00b67f09SDavid van Moolenbroek/// functions, whether they have proper comment markup or not. 48*00b67f09SDavid van Moolenbroek/// This is a good way to see what's been marked up, but might not 49*00b67f09SDavid van Moolenbroek/// be the right approach in the long run. 50*00b67f09SDavid van Moolenbroek/// 51*00b67f09SDavid van Moolenbroek/// \li See doc/doxygen/doxygen-input-filter.in for local abbreviations. 52*00b67f09SDavid van Moolenbroek/// 53*00b67f09SDavid van Moolenbroek/// \li We're probably over-using the \\brief markup tag. 54*00b67f09SDavid van Moolenbroek/// 55*00b67f09SDavid van Moolenbroek/// \li We may in fact be confusing Doxygen to the point where it's 56*00b67f09SDavid van Moolenbroek/// not finding markup comments that it should. Needs 57*00b67f09SDavid van Moolenbroek/// investigation. 58*00b67f09SDavid van Moolenbroek/// 59*00b67f09SDavid van Moolenbroek/// \li At the moment I have all the cool "dot" stuff turned off, 60*00b67f09SDavid van Moolenbroek/// both because it's a distraction and because it slows down 61*00b67f09SDavid van Moolenbroek/// doxygen runs. Maybe after I get a faster desk machine. :) 62*00b67f09SDavid van Moolenbroek/// 63*00b67f09SDavid van Moolenbroek/// \li At the moment we're producing a single "BIND9 Internals" 64*00b67f09SDavid van Moolenbroek/// manual. One of our previous complications was an attempt to 65*00b67f09SDavid van Moolenbroek/// produce separate manuals for each library, then cross-link 66*00b67f09SDavid van Moolenbroek/// them. We might still need separate library manuals, but, if 67*00b67f09SDavid van Moolenbroek/// so, it might be easier to have the BIND9 Internals manual be a 68*00b67f09SDavid van Moolenbroek/// superset of the library manuals (ie, reuse the same source to 69*00b67f09SDavid van Moolenbroek/// produce differently scoped manuals). Would certainly be 70*00b67f09SDavid van Moolenbroek/// simpler than the cross-linking mess, but partly it's a 71*00b67f09SDavid van Moolenbroek/// question of how we want to present the material. 72*00b67f09SDavid van Moolenbroek/// 73*00b67f09SDavid van Moolenbroek/// \li Doxygen is slanted towards C++. It can be tuned towards plain 74*00b67f09SDavid van Moolenbroek/// old C, but the C++ bias still shows up in places, eg, the lack 75*00b67f09SDavid van Moolenbroek/// of top-level menu support for functions (in C++, the basic 76*00b67f09SDavid van Moolenbroek/// unit of programming is the class, which Doxygen does support 77*00b67f09SDavid van Moolenbroek/// directly). This is a bit annoying, but not all that 78*00b67f09SDavid van Moolenbroek/// critical. 79*00b67f09SDavid van Moolenbroek/// 80*00b67f09SDavid van Moolenbroek/// \li If we ever get really ambitious, we might try processing 81*00b67f09SDavid van Moolenbroek/// Doxygen's XML output, which is basicly a dump of what Doxygen 82*00b67f09SDavid van Moolenbroek/// was able to scrape from the sources. This would be a major 83*00b67f09SDavid van Moolenbroek/// project, just something to think about if there's something we 84*00b67f09SDavid van Moolenbroek/// really don't like about the output Doxygen generates. Punt 85*00b67f09SDavid van Moolenbroek/// for now. 86