A Discrete-Event Network Simulator
API
print-introspected-doxygen.cc File Reference

Generate documentation from the TypeId database. More...

#include <iostream>
#include <algorithm>
#include <map>
#include <climits>
#include "ns3/command-line.h"
#include "ns3/config.h"
#include "ns3/global-value.h"
#include "ns3/log.h"
#include "ns3/object-vector.h"
#include "ns3/object.h"
#include "ns3/pointer.h"
#include "ns3/string.h"
#include "ns3/node-container.h"
#include "ns3/simple-channel.h"
#include "ns3/system-path.h"
+ Include dependency graph for print-introspected-doxygen.cc:

Go to the source code of this file.

Classes

struct  AttributeDescriptor
 Descriptor for an AttributeValue. More...
 
class  StaticInformation
 Gather aggregation and configuration path information from registered types. More...
 

Namespaces

 anonymous_namespace{print-introspected-doxygen.cc}
 

Typedefs

typedef std::map< std::string, int32_t > NameMap
 Map from TypeId name to tid. More...
 
typedef NameMap::const_iterator NameMapIterator
 NameMap iterator. More...
 

Functions

NameMap GetNameMap (const StaticInformation &info)
 Create a map from the class names to their index in the vector of TypeId's so that the names will end up in alphabetical order. More...
 
StaticInformation GetTypicalAggregations ()
 Register aggregation relationships that are not automatically detected by this introspection program. More...
 
void PrintAllAttributes (std::ostream &os)
 Print the list of all Attributes. More...
 
void PrintAllGlobals (std::ostream &os)
 Print the list of all global variables. More...
 
void PrintAllLogComponents (std::ostream &os)
 Print the list of all LogComponents. More...
 
void PrintAllTraceSources (std::ostream &os)
 Print the list of all Trace sources. More...
 
void PrintAttributeHelper (std::ostream &os, const AttributeDescriptor &attr)
 Print documentation corresponding to use of the ATTRIBUTE_HELPER_HEADER macro or ATTRIBUTE_VALUE_DEFINE_WITH_NAME macro. More...
 
void PrintAttributeImplementations (std::ostream &os)
 Print documentation for Attribute implementations. More...
 
void PrintAttributes (std::ostream &os, const TypeId tid)
 Print the Attributes block for tid, including Attributes declared in base classes. More...
 
void PrintAttributesTid (std::ostream &os, const TypeId tid)
 Print direct Attributes for this TypeId. More...
 
void PrintAttributeValueSection (std::ostream &os, const std::string &name, const bool seeBase=true)
 Print the section definition for an AttributeValue. More...
 
void PrintAttributeValueWithName (std::ostream &os, const std::string &name, const std::string &type, const std::string &header)
 Print the AttributeValue documentation for a class. More...
 
void PrintConfigPaths (std::ostream &os, const StaticInformation &info, const TypeId tid)
 Print config paths. More...
 
void PrintMakeAccessors (std::ostream &os, const std::string &name)
 Print the AttributeValue MakeAccessor documentation for a class. More...
 
void PrintMakeChecker (std::ostream &os, const std::string &name, const std::string &header)
 Print the AttributeValue MakeChecker documentation for a class. More...
 
void PrintSize (std::ostream &os, const TypeId tid)
 Print the size of the type represented by this tid. More...
 
void PrintTraceSources (std::ostream &os, const TypeId tid)
 Print the Trace sources block for tid, including Trace sources declared in base classes. More...
 
void PrintTraceSourcesTid (std::ostream &os, const TypeId tid)
 Print direct Trace sources for this TypeId. More...
 
void SetMarkup (bool outputText)
 Initialize the markup strings, for either doxygen or text. More...
 
template<typename T >
void Uniquefy (T t)
 Helper to keep only the unique items in a container. More...
 

Variables

std::string anonymous_namespace{print-introspected-doxygen.cc}::anchor
 hyperlink anchor More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::argument
 function argument More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::boldStart
 start of bold span More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::boldStop
 end of bold span More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::breakBoth
 linebreak More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::breakHtmlOnly
 linebreak for html output only More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::breakTextOnly
 linebreak for text output only More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::brief
 brief tag More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::classStart
 start of a class More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::classStop
 end of a class More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::codeWord
 format next word as source code More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::commentStart
 start of code comment More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::commentStop
 end of code comment More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::copyDoc
 copy (or refer) to docs elsewhere More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::file
 file More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::flagSpanStart
 start of Attribute flag value More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::flagSpanStop
 end of Attribute flag value More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::functionStart
 start of a method/function More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::functionStop
 end of a method/function More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::headingStart
 start of section heading (h3) More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::headingStop
 end of section heading (h3) More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::indentHtmlOnly
 small indent More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::listLineStart
 start unordered list item More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::listLineStop
 end unordered list item More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::listStart
 start unordered list More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::listStop
 end unordered list More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::note
 start a note section More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::page
 start a separate page More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::reference
 reference tag More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::returns
 the return value More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::sectionStart
 start of a section or group More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::seeAlso
 Reference to other docs. More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::subSectionStart
 start a new subsection More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::templArgDeduced
 template argument deduced from function More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::templArgExplicit
 template argument required More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::templateArgument
 template argument More...
 
std::string anonymous_namespace{print-introspected-doxygen.cc}::variable
 variable or class member More...
 

Detailed Description

Generate documentation from the TypeId database.

Definition in file print-introspected-doxygen.cc.

Typedef Documentation

typedef std::map< std::string, int32_t> NameMap

Map from TypeId name to tid.

Definition at line 1322 of file print-introspected-doxygen.cc.

typedef NameMap::const_iterator NameMapIterator

NameMap iterator.

Definition at line 1323 of file print-introspected-doxygen.cc.

Function Documentation

NameMap GetNameMap ( const StaticInformation info)

Create a map from the class names to their index in the vector of TypeId's so that the names will end up in alphabetical order.

Parameters
infotype names withut type ids
Returns
NameMap

Definition at line 1334 of file print-introspected-doxygen.cc.

References ns3::TypeId::GetName(), StaticInformation::GetNoTypeIds(), ns3::TypeId::GetRegistered(), ns3::TypeId::GetRegisteredN(), ns3::TypeId::MustHideFromDocumentation(), and NS_LOG_FUNCTION_NOARGS.

+ Here is the call graph for this function:

StaticInformation GetTypicalAggregations ( )

Register aggregation relationships that are not automatically detected by this introspection program.

Statements added here result in more configuration paths being added to the doxygen.

Returns
instance of StaticInformation with the registered information

Definition at line 1273 of file print-introspected-doxygen.cc.

References StaticInformation::Gather(), ns3::Object::GetInstanceTypeId(), ns3::Config::GetRootNamespaceObject(), ns3::Config::GetRootNamespaceObjectN(), NS_LOG_FUNCTION_NOARGS, and StaticInformation::RecordAggregationInfo().

+ Here is the call graph for this function:

void PrintAttributeHelper ( std::ostream &  os,
const AttributeDescriptor attr 
)

Print documentation corresponding to use of the ATTRIBUTE_HELPER_HEADER macro or ATTRIBUTE_VALUE_DEFINE_WITH_NAME macro.

Parameters
[in,out]osThe output stream.
[in]attrThe AttributeDescriptor.

Definition at line 861 of file print-introspected-doxygen.cc.

References AttributeDescriptor::m_header, AttributeDescriptor::m_name, AttributeDescriptor::m_seeBase, AttributeDescriptor::m_type, NS_LOG_FUNCTION, PrintAttributeValueSection(), PrintAttributeValueWithName(), PrintMakeAccessors(), and PrintMakeChecker().

Referenced by PrintAttributeImplementations().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PrintAttributeImplementations ( std::ostream &  os)

Print documentation for Attribute implementations.

Definition at line 877 of file print-introspected-doxygen.cc.

References NS_LOG_FUNCTION_NOARGS, PrintAttributeHelper(), PrintAttributeValueSection(), PrintAttributeValueWithName(), PrintMakeAccessors(), and PrintMakeChecker().

+ Here is the call graph for this function:

void PrintAttributes ( std::ostream &  os,
const TypeId  tid 
)

Print the Attributes block for tid, including Attributes declared in base classes.

All Attributes of this TypeId will be printed, including those defined in parent classes.

Parameters
[in,out]osThe output stream.
[in]tidThe TypeId to print.

Definition at line 328 of file print-introspected-doxygen.cc.

References anonymous_namespace{print-introspected-doxygen.cc}::breakBoth, ns3::TypeId::GetAttributeN(), ns3::TypeId::GetName(), ns3::TypeId::GetParent(), anonymous_namespace{print-introspected-doxygen.cc}::headingStart, anonymous_namespace{print-introspected-doxygen.cc}::headingStop, NS_LOG_FUNCTION, and PrintAttributesTid().

+ Here is the call graph for this function:

void PrintAttributesTid ( std::ostream &  os,
const TypeId  tid 
)
void PrintAttributeValueSection ( std::ostream &  os,
const std::string &  name,
const bool  seeBase = true 
)

Print the section definition for an AttributeValue.

In doxygen form this will print a comment block with

*   \ingroup attribute
*   \defgroup attribute_<name>Value <name>Value
* 
Parameters
[in,out]osThe output stream.
[in]nameThe base name of the resulting AttributeValue type.
[in]seeBasePrint a "see also" pointing to the base class.

Definition at line 651 of file print-introspected-doxygen.cc.

References anonymous_namespace{print-introspected-doxygen.cc}::commentStart, anonymous_namespace{print-introspected-doxygen.cc}::commentStop, NS_LOG_FUNCTION, anonymous_namespace{print-introspected-doxygen.cc}::sectionStart, anonymous_namespace{print-introspected-doxygen.cc}::seeAlso, and anonymous_namespace{print-introspected-doxygen.cc}::subSectionStart.

Referenced by PrintAttributeHelper(), and PrintAttributeImplementations().

+ Here is the caller graph for this function:

void PrintAttributeValueWithName ( std::ostream &  os,
const std::string &  name,
const std::string &  type,
const std::string &  header 
)
void PrintMakeAccessors ( std::ostream &  os,
const std::string &  name 
)

Print the AttributeValue MakeAccessor documentation for a class.

This will print documentation for the Make<name>Accessor functions.

Parameters
[in,out]osThe output stream.
[in]nameThe token to use in defining the accessor name.

Definition at line 779 of file print-introspected-doxygen.cc.

References anonymous_namespace{print-introspected-doxygen.cc}::commentStart, anonymous_namespace{print-introspected-doxygen.cc}::commentStop, anonymous_namespace{print-introspected-doxygen.cc}::copyDoc, anonymous_namespace{print-introspected-doxygen.cc}::functionStart, NS_LOG_FUNCTION, anonymous_namespace{print-introspected-doxygen.cc}::sectionStart, and anonymous_namespace{print-introspected-doxygen.cc}::seeAlso.

Referenced by PrintAttributeHelper(), and PrintAttributeImplementations().

+ Here is the caller graph for this function:

void PrintMakeChecker ( std::ostream &  os,
const std::string &  name,
const std::string &  header 
)

Print the AttributeValue MakeChecker documentation for a class.

This will print documentation for the Make<name>Checker function.

Parameters
[in,out]osThe output stream.
[in]nameThe token to use in defining the accessor name.
[in]headerThe header file which contains this declaration.

Definition at line 815 of file print-introspected-doxygen.cc.

References anonymous_namespace{print-introspected-doxygen.cc}::classStart, anonymous_namespace{print-introspected-doxygen.cc}::commentStart, anonymous_namespace{print-introspected-doxygen.cc}::commentStop, anonymous_namespace{print-introspected-doxygen.cc}::functionStart, NS_LOG_FUNCTION, anonymous_namespace{print-introspected-doxygen.cc}::returns, anonymous_namespace{print-introspected-doxygen.cc}::sectionStart, and anonymous_namespace{print-introspected-doxygen.cc}::seeAlso.

Referenced by PrintAttributeHelper(), and PrintAttributeImplementations().

+ Here is the caller graph for this function:

void PrintSize ( std::ostream &  os,
const TypeId  tid 
)

Print the size of the type represented by this tid.

Parameters
[in,out]osThe output stream.
[in]tidThe TypeId to print.

Definition at line 445 of file print-introspected-doxygen.cc.

References anonymous_namespace{print-introspected-doxygen.cc}::boldStart, anonymous_namespace{print-introspected-doxygen.cc}::boldStop, ns3::TypeId::GetSize(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

void PrintTraceSources ( std::ostream &  os,
const TypeId  tid 
)

Print the Trace sources block for tid, including Trace sources declared in base classes.

All Trace sources of this TypeId will be printed, including those defined in parent classes.

Parameters
[in,out]osThe output stream.
[in]tidThe TypeId to print.

Definition at line 405 of file print-introspected-doxygen.cc.

References anonymous_namespace{print-introspected-doxygen.cc}::breakBoth, ns3::TypeId::GetName(), ns3::TypeId::GetParent(), ns3::TypeId::GetTraceSourceN(), anonymous_namespace{print-introspected-doxygen.cc}::headingStart, anonymous_namespace{print-introspected-doxygen.cc}::headingStop, NS_LOG_FUNCTION, and PrintTraceSourcesTid().

+ Here is the call graph for this function:

void SetMarkup ( bool  outputText)

Initialize the markup strings, for either doxygen or text.

Parameters
[in]outputTexttrue for text output, false for doxygen output.

Definition at line 97 of file print-introspected-doxygen.cc.

References anonymous_namespace{print-introspected-doxygen.cc}::anchor, anonymous_namespace{print-introspected-doxygen.cc}::argument, anonymous_namespace{print-introspected-doxygen.cc}::boldStart, anonymous_namespace{print-introspected-doxygen.cc}::boldStop, anonymous_namespace{print-introspected-doxygen.cc}::breakBoth, anonymous_namespace{print-introspected-doxygen.cc}::breakHtmlOnly, anonymous_namespace{print-introspected-doxygen.cc}::breakTextOnly, anonymous_namespace{print-introspected-doxygen.cc}::brief, anonymous_namespace{print-introspected-doxygen.cc}::classStart, anonymous_namespace{print-introspected-doxygen.cc}::classStop, anonymous_namespace{print-introspected-doxygen.cc}::codeWord, anonymous_namespace{print-introspected-doxygen.cc}::commentStart, anonymous_namespace{print-introspected-doxygen.cc}::commentStop, anonymous_namespace{print-introspected-doxygen.cc}::copyDoc, anonymous_namespace{print-introspected-doxygen.cc}::file, anonymous_namespace{print-introspected-doxygen.cc}::flagSpanStart, anonymous_namespace{print-introspected-doxygen.cc}::flagSpanStop, anonymous_namespace{print-introspected-doxygen.cc}::functionStart, anonymous_namespace{print-introspected-doxygen.cc}::functionStop, anonymous_namespace{print-introspected-doxygen.cc}::headingStart, anonymous_namespace{print-introspected-doxygen.cc}::headingStop, anonymous_namespace{print-introspected-doxygen.cc}::indentHtmlOnly, anonymous_namespace{print-introspected-doxygen.cc}::listLineStart, anonymous_namespace{print-introspected-doxygen.cc}::listLineStop, anonymous_namespace{print-introspected-doxygen.cc}::listStart, anonymous_namespace{print-introspected-doxygen.cc}::listStop, anonymous_namespace{print-introspected-doxygen.cc}::note, NS_LOG_FUNCTION, anonymous_namespace{print-introspected-doxygen.cc}::page, anonymous_namespace{print-introspected-doxygen.cc}::reference, anonymous_namespace{print-introspected-doxygen.cc}::returns, anonymous_namespace{print-introspected-doxygen.cc}::sectionStart, anonymous_namespace{print-introspected-doxygen.cc}::seeAlso, anonymous_namespace{print-introspected-doxygen.cc}::subSectionStart, anonymous_namespace{print-introspected-doxygen.cc}::templArgDeduced, anonymous_namespace{print-introspected-doxygen.cc}::templArgExplicit, anonymous_namespace{print-introspected-doxygen.cc}::templateArgument, and anonymous_namespace{print-introspected-doxygen.cc}::variable.

template<typename T >
void Uniquefy ( t)

Helper to keep only the unique items in a container.

The container is modified in place; the elements end up sorted.

The container must support begin(), end() and erase(), which, among the STL containers, limits this to std::vector, std::dequeue and std::list.

The container elements must support operator< (for std::sort) and operator== (for std::unique).

Template Parameters
T[deduced] The container type.
Parameters
tThe container.

Definition at line 1158 of file print-introspected-doxygen.cc.

Referenced by StaticInformation::Gather(), and StaticInformation::GetNoTypeIds().

+ Here is the caller graph for this function: