/** \mainpage JSOC Reference This is the developer and design manual for JSOC. Previous documentation has been integrated into this and it should always be up to date since it is generated directly from the source files using Doxygen. \section general General design documents Start with the "ManPage Sections" tab for html versions of the JSOC software manual pages. General information on:\n - JSOC: http://jsoc.stanford.edu\n - HMI: http://hmi.stanford.edu\n - AIA: http://aia.lmsal.com\n \section hacking Hacking on this documentation There is the beginning of a style guide for documenting under \ref tipshints. There is an example module documentation man page at \ref module_template. Feel free to start documenting or playing with doxygen configuration. This main page can be found in doc/doxygen_main_page.txt . This main page is just an introduction to doxygen markup, see the Doxygen manual for the full command set. - \ref tipshints Tips and hints for using doxygen - \ref reference Links to the Doxygen manual */ /** \page tipshints Useful tips for doxygen in C files - \ref reference The Doxygen manual \section tips An introduction to doxygen markup \subsection Locations What to document All declarations for: -# typedef -# struct -# enum -# functions This will enable doxygen to link all parameter types to the declarations every time the type is used in a function - very helpful to new developers. \subsection Files Private files If your declarations are in separate files, like private header files, a simple block can still be linked into doxygen as long as the file is identified to doxygen using a '\\file' section: \\file filename.h\n \\brief one-liner summary of the file purpose\n \\author the usual copyright statement \subsection Methods How to document Every doxygen comment block starts with an adapted comment marker. You can use an extra slash /// or an extra asterisk. Blocks end in the usual way. Doxygen accepts commands using a backslash. To put a description with each function or structure, use '\\brief' End the brief description with a blank line. The rest of the documentation will then be shown in the body of the doxygen page. Commands may begin with \\ or @ \subsection Presentation Extras -# Start a line with a hyphen to start a list - the indent determines the nesting of the list: - To create a numbered list, use -# e.g. for a sublist: -# start a numbered list - revert to previous list End the list with a blank line. Use :: at the start of a function or structure to link to the page for that function in the doxygen documentation. e.g. ::qof_class_foreach Use the param command to describe function parameters in the text. Use the 'back reference' to document enumerator values:\n enum testenum {\n enum_one **< less than marker tells doxygen to use this line to document enum_one. \subsection config Editing Doxygen configuration To edit the doxygen configuration, you can use: * cd doc * vi doxygen_publ.cfg & */ /*! \page reference Doxygen reference documentation The Doxygen web site (http://www.stack.nl/~dimitri/doxygen/) has a complete user manual. For the impatient, here are the most interesting sections: - How to write grouped documentation for files, functions, variables, etc.: http://www.stack.nl/~dimitri/doxygen/grouping.html . Do not forget to add a file documentation block (\@file) at the top of your file. Otherwise, none of the documentation in that file will appear in the html output. - List of the special commands you can use within your documentation blocks: http://www.stack.nl/~dimitri/doxygen/commands.html */ ///@defgroup a_programs Section 1. Programs, DRMS Modules, Shell Scripts /// @defgroup common_main All JSOC Modules Common Interface /// @ingroup a_programs /// @defgroup drms_util DRMS Utilities /// @ingroup a_programs /// @defgroup su_apps Stanford University Applications /// @ingroup a_programs /// @defgroup su_admin Administrative Utilities /// @ingroup su_apps /// @defgroup su_util General Utilities /// @ingroup su_apps /// @defgroup su_migration Data Migration /// @ingroup su_apps /// @defgroup su_export Data Export /// @ingroup su_apps /// @defgroup su_lev0 Level Zero /// @ingroup su_apps /// @defgroup su_util Utilities for MDI, HMI, etc. /// @ingroup su_apps ///@defgroup c_api Section 3. API Libraries // @{ /** @defgroup sum_api SUMS API functions @ingroup c_api */ /** @defgroup core_api Core DRMS API functions @ingroup c_api */ /** @defgroup full_api All DRMS API functions @ingroup c_api */ // @} /** @defgroup record_api Functions for working with records @ingroup full_api */ /** @defgroup segment_api Functions for working with segments @ingroup full_api */ /** @defgroup cmdparam_api Functions for working with DRMS command-line parameters @ingroup full_api */ /** @defgorup binfile_api Function for working with binary files @ingroup full_api */ /** @defgroup defs_api Functions for working with definition-file strings @ingroup full_api */ /** @defgroup env_api Functions for working with the connection to the database @ingroup full_api */ /** @defgroup keymap_api Functions for managing the mapping between internal and external keywords @ingroup full_api */ /** @defgroup keyword_api Functions for reading and writing keywords @ingroup full_api */ /** @defgroup link_api Functions for reading from links @ingroup full_api */ /** @defgroup names_api Functions for working with record-query strings @ingroup full_api */