GLAST/LAT > DAQ and FSW > FSW

Introduction to Doxygen


Overview

As detailed on its web page, Doxygen is an Open-Source documentation system, created by Dimitri van Heesch. It handles C++, C, Java, IDL (Corba and Microsoft flavors) and, to some extent, PHP and C#. It extracts information on code structure from the source code, along with specially-formatted comments, producing integrated reference documents in assorted formats. Doxygen is also able to generate "call trees" and other graphs, using Graphviz.

The FSW effort is using Doxygen, combined with CMT, CMX, and a set of web-page generation scripts, to provide rapid and flexible access to automatically-generated and -maintained documentation. This page provides only a short overview of Doxygen's capabilities; for more information, download a current copy of the manual.

Navigation

There are several ways to get to Doxygen-produced web pages:

  • The FSW group's Main Index to Doxygen is a table of links, corresponding to specific package/version combinations. These will take you to tabular "Package Index" pages, containing links to Doxygen pages for specific constituent/tag combinations.

  • Each Package web page (e.g., CMX) contains a set of "Doxygen" links, tied to specified versions of the package. These will also take you to "Package Index" pages.

  • Alternatively, you can click on one of the "Constituent(s)" entries on a Package web page. This will take you to the Doxygen page for the constituent, picking an "appropriate" tag.

At the top of the Doxygen page, you will see a set of links. The Main Index and Package Index links will take you to the tabular index pages discussed above. Further down the Doxygen page, you should see a set of links leading to different "views" of the chosen constituent:

  • Interface

    This page contains a list of links (with brief descriptions) to "File Reference" pages for interface files. These pages contain sections on Data Structures, Defines, and Typedefs, plus Detailed Description and Define Documentation sections.

  • Compound List

    This page contains a list of links (with brief descriptions) to "Struct Reference" and "Union Reference" pages. These pages contain sections on Data Fields, plus Detailed Description and Field Documentation sections.

  • File List

    This page contains a list of links (with brief descriptions) to "File Reference" pages (described above) for documented files.

  • Compound Members

    This page contains a list of links into "Struct Reference" and "Union Reference" pages, detailing the selected struct or union field.

  • File Members

    This page contains a list of links into "File Reference" pages, detailing the selected function, variable, define, enum, or typedef.

In addition, the Doxygen pages are heavily cross-linked, allowing the user to jump back and forth among the descriptions.

Preparation

As noted above, Doxygen extracts information on code structure from the source code. It cannot, however, generate explanations of the code or data structures. This information must be supplied, in the form of specially-formatted comments, by the programmer.

As you browse Doxygen (and the FSW code base), pay attention to the kinds of notes that programmers have supplied. Use this as a guide to creating your own Doxygen comments.

Most Doxygen pages are rebuilt during the CMX build process, so they should be up to date as soon as the build finishes. A few (computationally-expensive) diagrams are, however, scheduled for creation in the nightly cron(1) job. A CMX option exists to force immediate creation of these diagrams.