diff --git a/doc/doxygen.conf b/doc/doxygen.conf index de2b15014..f8294ed50 100644 --- a/doc/doxygen.conf +++ b/doc/doxygen.conf @@ -785,11 +785,13 @@ WARN_LOGFILE = doc/doxygen.log INPUT = doc/modules \ doc/main.h \ - doc/introspected-doxygen.h \ examples \ utils \ src \ - contrib + contrib \ + doc/introspected-doxygen.h \ + doc/introspected-command-line.h \ + # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses diff --git a/src/core/model/attribute-helper.h b/src/core/model/attribute-helper.h index c1ef5c808..49865e308 100644 --- a/src/core/model/attribute-helper.h +++ b/src/core/model/attribute-helper.h @@ -34,7 +34,7 @@ namespace ns3 { /** - * \ingroup attribute + * \ingroup attributes * \defgroup attributehelper Attribute Helper * * All these macros can be used to generate automatically the code diff --git a/src/core/model/attribute.h b/src/core/model/attribute.h index 9e9597e7f..d2772fdde 100644 --- a/src/core/model/attribute.h +++ b/src/core/model/attribute.h @@ -42,7 +42,7 @@ class ObjectBase; /** * * \ingroup core - * \defgroup attribute Attributes + * \defgroup attributes Attributes * * The \c ns-3 attribute system is the mechanism used in \c ns-3 to * organize, document, and modify the *values* used by the various @@ -57,7 +57,7 @@ class ObjectBase; /** * - * \ingroup attribute + * \ingroup attributes * * \brief Hold a value for an Attribute. * @@ -104,7 +104,7 @@ public: /** * \brief allow setting and getting the value of an attribute. * - * \ingroup attribute + * \ingroup attributes * * The goal of this class is to hide from the user how an attribute * is actually set or get to or from a class instance. Implementations @@ -152,7 +152,7 @@ public: /** * \brief Represent the type of an attribute * - * \ingroup attribute + * \ingroup attributes * * Each type of attribute has an associated unique AttributeChecker * subclass. The type of the subclass can be safely used by users @@ -227,7 +227,7 @@ public: /** * \brief A class for an empty attribute value. * - * \ingroup attribute + * \ingroup attributes */ class EmptyAttributeValue : public AttributeValue { @@ -275,7 +275,7 @@ public: }; /** - * \ingroup attribute + * \ingroup attributes * * \brief Create an empty AttributeAccessor. * @@ -307,7 +307,7 @@ public: }; /** - * \ingroup attribute + * \ingroup attributes * * \brief Create an empty AttributeChecker. * diff --git a/src/core/model/enum.cc b/src/core/model/enum.cc index 929666aac..07893f15d 100644 --- a/src/core/model/enum.cc +++ b/src/core/model/enum.cc @@ -112,7 +112,7 @@ EnumChecker::GetValue (const std::string name) const auto it = std::find_if (m_valueSet.begin (), m_valueSet.end (), [name] (Value v) { return v.second == name; } ); NS_ASSERT_MSG (it != m_valueSet.end (), - "name " << name << "not a valid enum value. Missed entry in MakeEnumChecker?"); + "name " << name << " not a valid enum value. Missed entry in MakeEnumChecker?"); return it->first; } bool diff --git a/src/core/model/nstime.h b/src/core/model/nstime.h index 996a2fa8e..c0e977d78 100644 --- a/src/core/model/nstime.h +++ b/src/core/model/nstime.h @@ -1133,7 +1133,7 @@ ATTRIBUTE_VALUE_DEFINE (Time); ATTRIBUTE_ACCESSOR_DEFINE (Time); /** - * \ingroup time + * \ingroup attribute_time * \brief Helper to make a Time checker with bounded range. * Both limits are inclusive * @@ -1144,7 +1144,7 @@ ATTRIBUTE_ACCESSOR_DEFINE (Time); Ptr MakeTimeChecker (const Time min, const Time max); /** - * \ingroup time + * \ingroup attribute_time * \brief Helper to make an unbounded Time checker. * * \return The AttributeChecker @@ -1156,7 +1156,7 @@ Ptr MakeTimeChecker (void) } /** - * \ingroup time + * \ingroup attribute_time * \brief Helper to make a Time checker with a lower bound. * * \param [in] min Minimum allowed value. diff --git a/src/core/model/simulator.cc b/src/core/model/simulator.cc index f0c467c16..bac4c2100 100644 --- a/src/core/model/simulator.cc +++ b/src/core/model/simulator.cc @@ -55,6 +55,7 @@ NS_LOG_COMPONENT_DEFINE ("Simulator"); /** * \ingroup simulator + * \anchor GlobalValueSimulatorImplementationType * The specific simulator implementation to use. * * Must be derived from SimulatorImpl. @@ -67,6 +68,7 @@ static GlobalValue g_simTypeImpl = GlobalValue /** * \ingroup scheduler + * \anchor GlobalValueSchedulerType * The specific event scheduler implementation to use. * * Must be derived from Scheduler. diff --git a/src/core/model/system-path.cc b/src/core/model/system-path.cc index c27a69cec..ab0308262 100644 --- a/src/core/model/system-path.cc +++ b/src/core/model/system-path.cc @@ -310,7 +310,7 @@ MakeTemporaryDirectoryName (void) // // The final path to the directory is going to look something like // - // /tmp/ns3-14.30.29.32767 + // /tmp/ns3.14.30.29.32767 // // The first segment comes from one of the temporary directory env // variables or /tmp if not found. The directory name starts with an diff --git a/src/core/model/system-path.h b/src/core/model/system-path.h index b9bb111de..2e3a9e1eb 100644 --- a/src/core/model/system-path.h +++ b/src/core/model/system-path.h @@ -110,6 +110,22 @@ std::list ReadFiles (std::string path); * Call ns3::SystemPath::MakeDirectories to create it. Yes, there is a * well-known security race in this API but we don't care in ns-3. * + * The final path to the directory is going to look something like + * + * /tmp/ns3.14.30.29.32767 + * + * The first part, "/tmp/" is the absolute path found by inspecting + * the environment variables `TMP`and `TEMP`, in order. If neither + * exists the hard-codes root path `/tmp/` is used. + * + * The directory name itself starts with the "ns3" identifier telling folks + * who is making all of the temp directories. + * + * The next three number give the hour, minute and second, separated by + * periods. + * + * The final number is randomly generated, to avoid name collisions. + * * \return A path which identifies a temporary directory. */ std::string MakeTemporaryDirectoryName (void); diff --git a/src/network/model/node.cc b/src/network/model/node.cc index 503829588..070f1602a 100644 --- a/src/network/model/node.cc +++ b/src/network/model/node.cc @@ -39,6 +39,8 @@ NS_LOG_COMPONENT_DEFINE ("Node"); NS_OBJECT_ENSURE_REGISTERED (Node); /** + * \relates Node + * \anchor GlobalValueChecksumEnabled * \brief A global switch to enable all checksums for all protocols. */ static GlobalValue g_checksumEnabled = GlobalValue ("ChecksumEnabled", diff --git a/src/wifi/model/extended-capabilities.h b/src/wifi/model/extended-capabilities.h index 848c89917..c64738a12 100644 --- a/src/wifi/model/extended-capabilities.h +++ b/src/wifi/model/extended-capabilities.h @@ -30,8 +30,6 @@ namespace ns3 { * \ingroup wifi * * This class knows how to serialise and deserialise the Extended Capabilities Information Element - * - * \see attribute_ExtendedCapabilities */ class ExtendedCapabilities : public WifiInformationElement { diff --git a/src/wifi/model/he-operation.h b/src/wifi/model/he-operation.h index 1b2f17f74..f21a7efe9 100644 --- a/src/wifi/model/he-operation.h +++ b/src/wifi/model/he-operation.h @@ -31,8 +31,6 @@ namespace ns3 { * * This class knows how to serialise and deserialise * the HE Operation Information Element - * - * \see attribute_HeOperation */ class HeOperation : public WifiInformationElement { diff --git a/src/wifi/model/ht-capabilities.h b/src/wifi/model/ht-capabilities.h index acb3599c0..5907a2083 100644 --- a/src/wifi/model/ht-capabilities.h +++ b/src/wifi/model/ht-capabilities.h @@ -37,8 +37,6 @@ namespace ns3 { * \ingroup wifi * * This class knows how to serialise and deserialise the HT Capabilities Information Element - * - * \see attribute_HtCapabilities */ class HtCapabilities : public WifiInformationElement { diff --git a/src/wifi/model/ht-operation.h b/src/wifi/model/ht-operation.h index 8923f2b4a..39d87fd8d 100644 --- a/src/wifi/model/ht-operation.h +++ b/src/wifi/model/ht-operation.h @@ -46,8 +46,6 @@ enum HtProtectionType * * This class knows how to serialise and deserialise * the HT Operation Information Element - * - * \see attribute_HtOperation */ class HtOperation : public WifiInformationElement { diff --git a/src/wifi/model/vht-operation.h b/src/wifi/model/vht-operation.h index 464ae2229..494dfcb81 100644 --- a/src/wifi/model/vht-operation.h +++ b/src/wifi/model/vht-operation.h @@ -31,8 +31,6 @@ namespace ns3 { * * This class knows how to serialise and deserialise * the VHT Operation Information Element - * - * \see attribute_VhtOperation */ class VhtOperation : public WifiInformationElement { diff --git a/utils/print-introspected-doxygen.cc b/utils/print-introspected-doxygen.cc index 27c006300..26ded86f3 100644 --- a/utils/print-introspected-doxygen.cc +++ b/utils/print-introspected-doxygen.cc @@ -73,6 +73,10 @@ namespace std::string functionStop; ///< end of a method/function std::string headingStart; ///< start of section heading (h3) std::string headingStop; ///< end of section heading (h3) + // Linking: [The link text displayed](\ref TheTarget) + std::string hrefStart; ///< start of a link + std::string hrefMid; ///< middle part of a link + std::string hrefStop; ///< end of a link std::string indentHtmlOnly; ///< small indent std::string listLineStart; ///< start unordered list item std::string listLineStop; ///< end unordered list item @@ -81,6 +85,7 @@ namespace std::string note; ///< start a note section std::string page; ///< start a separate page std::string reference; ///< reference tag + std::string referenceNo; ///< block automatic references std::string returns; ///< the return value std::string sectionStart; ///< start of a section or group std::string seeAlso; ///< Reference to other docs @@ -126,6 +131,10 @@ SetMarkup (bool outputText) functionStop = "\n\n"; headingStart = ""; headingStop = ""; + // Linking: The link text displayed (see TheTarget) + hrefStart = ""; + hrefMid = "(see "; + hrefStop = ")"; indentHtmlOnly = ""; listLineStart = " * "; listLineStop = ""; @@ -134,6 +143,7 @@ SetMarkup (bool outputText) note = "Note: "; page = "Page "; reference = " "; + referenceNo = " "; returns = " Returns: "; sectionStart = "Section "; seeAlso = " See: "; @@ -166,6 +176,10 @@ SetMarkup (bool outputText) functionStop = ""; headingStart = "

"; headingStop = "

"; + // Linking: [The link text displayed](\ref TheTarget) + hrefStart = "["; + hrefMid = "](\\ref "; + hrefStop = ")"; indentHtmlOnly = " "; listLineStart = "
  • "; listLineStop = "
  • "; @@ -174,6 +188,7 @@ SetMarkup (bool outputText) note = "\\note "; page = "\\page "; reference = " \\ref "; + referenceNo = " %"; returns = "\\returns "; sectionStart = "\\ingroup "; seeAlso = "\\see "; @@ -983,12 +998,14 @@ void PrintAllTypeIds (std::ostream & os) { NS_LOG_FUNCTION_NOARGS (); - os << commentStart << page << "TypeIdList All TypeIds\n" + os << commentStart << page << "TypeIdList All ns3::TypeId's\n" << std::endl; - os << "This is a list of all" << reference << "TypeIds.\n" - << "For more information see the" << reference << "TypeId " - << "section of this API documentation and the TypeId section " - << "in the Configuration and Attributes chapter of the Manual.\n" + os << "This is a list of all" << reference << "ns3::TypeId's.\n" + << "For more information see the" << reference << "ns3::TypeId " + << "section of this API documentation and the" + << referenceNo << "TypeId section " + << "in the Configuration and " + << referenceNo << "Attributes chapter of the Manual.\n" << std::endl; os << listStart << std::endl; @@ -1015,6 +1032,7 @@ PrintAllTypeIds (std::ostream & os) << std::endl; } + os << listStop << std::endl; os << commentStop << std::endl; } // PrintAllTypeIds () @@ -1034,8 +1052,8 @@ PrintAllAttributes (std::ostream & os) NS_LOG_FUNCTION_NOARGS (); os << commentStart << page << "AttributeList All Attributes\n" << std::endl; - os << "This is a list of all" << reference << "attribute by class. " - << "For more information see the" << reference << "attribute " + os << "This is a list of all" << reference << "ns3::Attributes by class. " + << "For more information see the" << reference << "ns3:Attributes " << "section of this API documentation and the Attributes sections " << "in the Tutorial and Manual.\n" << std::endl; @@ -1101,11 +1119,12 @@ PrintAllGlobals (std::ostream & os) os << indentHtmlOnly << listLineStart << boldStart - << anchor - << "GlobalValue" << (*i)->GetName () << " " << (*i)->GetName () + << hrefStart << (*i)->GetName () + << hrefMid << "GlobalValue" << (*i)->GetName () + << hrefStop << boldStop - << ": " << (*i)->GetHelp () - << ". Default value: " << val.Get () << "." + << ": " << (*i)->GetHelp () + << ". Default value: " << val.Get () << ". " << listLineStop << std::endl; } @@ -1491,17 +1510,6 @@ PrintAttributeImplementations (std::ostream & os) { "Address", "Address", true, "address.h" }, { "Box", "Box", true, "box.h" }, { "DataRate", "DataRate", true, "data-rate.h" }, - { "DsssParameterSet", - "DsssParameterSet", - true, "dsss-parameter-set.h"}, - { "EdcaParameterSet", - "EdcaParameterSet", - true, "edca-parameter-set.h"}, - { "ErpInformation", "ErpInformation", true, "erp-information.h" }, - { "ExtendedCapabilities", "ExtendedCapabilities", true, "extended-capabilities.h" }, - { "HeCapabilities", "HeCapabilities", true, "he-capabilities.h" }, - { "VhtCapabilities","VhtCapabilities",true, "vht-capabilities.h" }, - { "HtCapabilities", "HtCapabilities", true, "ht-capabilities.h" }, { "IeMeshId", "IeMeshId", true, "ie-dot11s-id.h" }, { "Ipv4Address", "Ipv4Address", true, "ipv4-address.h" }, { "Ipv4Mask", "Ipv4Mask", true, "ipv4-address.h" }, @@ -1522,20 +1530,16 @@ PrintAttributeImplementations (std::ostream & os) { "Vector", "Vector", true, "vector.h" }, { "Vector2D", "Vector2D", true, "vector.h" }, { "Vector3D", "Vector3D", true, "vector.h" }, - { "HeOperation", "HeOperation", true, "he-operation.h" }, - { "VhtOperation", "VhtOperation", true, "vht-operation.h" }, - { "HtOperation", "HtOperation", true, "ht-operation.h" }, { "Waypoint", "Waypoint", true, "waypoint.h" }, { "WifiMode", "WifiMode", true, "wifi-mode.h" }, // All three (Value, Access and Checkers) defined, but custom - { "Boolean", "Boolean", false, "boolean.h" }, + { "Boolean", "bool", false, "boolean.h" }, { "Callback", "Callback", true, "callback.h" }, { "Double", "double", false, "double.h" }, { "Enum", "int", false, "enum.h" }, { "Integer", "int64_t", false, "integer.h" }, { "Pointer", "Pointer", false, "pointer.h" }, - { "RandomVariable", "RandomVariable", true, "random-variable-stream.h" }, { "String", "std::string", false, "string.h" }, { "Time", "Time", true, "nstime.h" }, { "Uinteger", "uint64_t", false, "uinteger.h" }, @@ -1595,7 +1599,7 @@ int main (int argc, char *argv[]) if (!outputText) { std::cout << "/* -*- Mode:C++; c-file-style:\"gnu\"; " - "indent-tabs-mode:nil; -*- */" + "indent-tabs-mode:nil; -*- */\n" << std::endl; }