Project

General

Profile

AB Template - code commenting

C++ template for code commenting

In the following the code commenting rules are reported.
Use the Doxyfile to generate documentation.

A complete list of doxygen commands is reported here:
[[http://www.stack.nl/~dimitri/doxygen/manual/commands.html]]

Headers for .h and .cpp

/***************************************************************************
    begin                : Thu Nov 29 2001
    copyright            : (C) 2001 Andrea Bulgarelli
    email                : bulgarelli@iasfbo.inaf.it
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software for non commercial purpose              *
 *   and for public research institutes; you can redistribute it and/or    *
 *   modify it under the terms of the GNU General Public License.          *
 *   For commercial purpose see appropriate license terms                  *
 *                                                                         *
 ***************************************************************************/

.h

Each .h should contain only the definition of one class.

After the header of the file

#ifndef _FILENAME_H
#define _FILENAME_H

#endif 

comment for classes

/// Insert here the description of the class
/// \brief Insert here a brief description of the class
class A {

};

Comment for methods

/// Returns a pointer of a field in the list of fields of this part of packet.
/// \pre The file must be opened.
/// \param index Represent the index in the list.
/// \param[in] argc The argument count.
/// \param[in,out] argv The argument values (changed after parsing).
/// \param[out] outv The output string values.
/// \return true if file is closed, false if file is opened.
/// \exception manage this exception
/// \post A side effects of this method is that the value of fields of packet are setted
/// \remarks Some remarks
void methodName(int a, char* b);

Comment for attributes

/// The attribute store the pointer
int nameOfAttribute;

An example of .h

/***************************************************************************
    begin                : Aug 06 2013
    copyright            : (C) 2013 Andrea Bulgarelli
    email                : bulgarelli@iasfbo.inaf.it
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software for non commercial purpose              *
 *   and for public research institutes; you can redistribute it and/or    *
 *   modify it under the terms of the GNU General Public License.          *
 *   For commercial purpose see appropriate license terms                  *
 *                                                                         *
 ***************************************************************************/

#ifndef _FILENAME_H
#define _FILENAME_H

/// Insert here the description of the class
/// \brief Insert here a brief description of the class
class A {

public:
    /// Elaborate an array
    /// \pre The file must be opened.
    /// \param[in] index Represent the index in the list.
    /// \param[out]    a the index with the max value.
    /// \return a pointer to an array or zero if no data are present
    /// \exception std::out_of_range parameter is out of range.
    /// \post no side effects.
    /// \remarks Some remarks.
    int* elaborateArray(int index, int &a ) throw(std::out_of_range);

private:

    /// A local array
    int* arrayB;

};

#endif