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 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
 
typedef NameMap::const_iterator NameMapIterator
 

Functions

NameMap GetNameMap (const StaticInformation &info)
 
StaticInformation GetTypicalAggregations ()
 
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)
 
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}::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}::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

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

typedef NameMap::const_iterator NameMapIterator

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

Function Documentation

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 854 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 870 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 321 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 644 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 772 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 808 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 438 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 398 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 94 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}::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, 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 1140 of file print-introspected-doxygen.cc.

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

+ Here is the caller graph for this function: