diff --git a/doc/doxygen.conf b/doc/doxygen.conf index 341a7b600..b2aba478d 100644 --- a/doc/doxygen.conf +++ b/doc/doxygen.conf @@ -2232,7 +2232,7 @@ SEARCH_INCLUDES = YES ## Allow doxygen to find generated include files, such as ns3/core-config.h -INCLUDE_PATH = build +INCLUDE_PATH = build/include # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the diff --git a/doc/doxygen.warnings.report.sh b/doc/doxygen.warnings.report.sh index b64a3f3b2..c24b837be 100755 --- a/doc/doxygen.warnings.report.sh +++ b/doc/doxygen.warnings.report.sh @@ -248,10 +248,10 @@ REappend filter_blacklistRE "cairo-wideint" # Functions with varying numbers of arguments # Explicit template instantiation declaration -REappend filter_blacklistRE "MakeCallback< ObjectBase \\* >(ObjectBase \\*" +# REappend filter_blacklistRE "MakeCallback< ObjectBase \\* >(ObjectBase \\*" # ATTRIBUTE_HELPER_CPP( and _HEADER( -REappend filter_blacklistRE "ATTRIBUTE_HELPER_\\(CPP\\|HEADER\\)" +# REappend filter_blacklistRE "ATTRIBUTE_HELPER_\\(CPP\\|HEADER\\)" # Filter out regular expression for black list, -e, -t and -F filter_outRE="" diff --git a/src/core/model/attribute.h b/src/core/model/attribute.h index f94f22a1c..944fe8306 100644 --- a/src/core/model/attribute.h +++ b/src/core/model/attribute.h @@ -225,10 +225,18 @@ class AttributeChecker : public SimpleRefCount virtual bool Copy(const AttributeValue& source, AttributeValue& destination) const = 0; }; +/** + * \ingroup attributes + * \defgroup attribute_EmptyAttribute EmptyAttribute Attribute + * AttributeValue implementation for EmptyAttribute + */ + /** * \brief A class for an empty attribute value. * - * \ingroup attributes + * \ingroup attribute_EmptyAttribute + * + * \see AttributeValue */ class EmptyAttributeValue : public AttributeValue { @@ -262,6 +270,8 @@ class EmptyAttributeValue : public AttributeValue /** * \brief An accessor for EmptyAttributeValue * + * \ingroup attribute_EmptyAttribute + * * Does nothing, since every EmptyAttributeValue is the same. */ class EmptyAttributeAccessor : public AttributeAccessor @@ -276,7 +286,7 @@ class EmptyAttributeAccessor : public AttributeAccessor }; /** - * \ingroup attributes + * \ingroup attribute_EmptyAttribute * * \brief Create an empty AttributeAccessor. * @@ -291,6 +301,8 @@ MakeEmptyAttributeAccessor() /** * \brief A checker for EmptyAttributeValue * + * \ingroup attribute_EmptyAttribute + * * Does nothing, since every EmptyAttributeValue does not contain anything and * is, of course, valid. */ @@ -308,7 +320,7 @@ class EmptyAttributeChecker : public AttributeChecker }; /** - * \ingroup attributes + * \ingroup attribute_EmptyAttribute * * \brief Create an empty AttributeChecker. * diff --git a/src/core/model/boolean.cc b/src/core/model/boolean.cc index f7c2a0697..e7706a5fa 100644 --- a/src/core/model/boolean.cc +++ b/src/core/model/boolean.cc @@ -24,7 +24,7 @@ /** * \file * \ingroup attribute_Boolean - * ns3::BooleanValue attribute value implementaation. + * ns3::BooleanValue attribute value implementation. */ namespace ns3 @@ -38,7 +38,7 @@ BooleanValue::BooleanValue() NS_LOG_FUNCTION(this); } -BooleanValue::BooleanValue(bool value) +BooleanValue::BooleanValue(const bool& value) : m_value(value) { NS_LOG_FUNCTION(this << value); diff --git a/src/core/model/boolean.h b/src/core/model/boolean.h index 8e010b009..4b19f31f8 100644 --- a/src/core/model/boolean.h +++ b/src/core/model/boolean.h @@ -37,12 +37,7 @@ class BooleanValue : public AttributeValue { public: BooleanValue(); - /** - * Construct from an explicit value. - * - * \param [in] value The boolean value to begin with. - */ - BooleanValue(bool value); + BooleanValue(const bool& value); void Set(bool value); bool Get() const; template diff --git a/src/core/model/callback.cc b/src/core/model/callback.cc index 909bb30b9..3971a5358 100644 --- a/src/core/model/callback.cc +++ b/src/core/model/callback.cc @@ -38,8 +38,8 @@ CallbackValue::CallbackValue() NS_LOG_FUNCTION(this); } -CallbackValue::CallbackValue(const CallbackBase& base) - : m_value(base) +CallbackValue::CallbackValue(const CallbackBase& value) + : m_value(value) { } @@ -49,11 +49,17 @@ CallbackValue::~CallbackValue() } void -CallbackValue::Set(CallbackBase base) +CallbackValue::Set(const CallbackBase& value) { - NS_LOG_FUNCTION(&base); + NS_LOG_FUNCTION(&value); + m_value = value; +} - m_value = base; +CallbackBase +CallbackValue::Get() +{ + NS_LOG_FUNCTION(this); + return m_value; } Ptr diff --git a/src/core/model/callback.h b/src/core/model/callback.h index 573aa29e6..f05e10407 100644 --- a/src/core/model/callback.h +++ b/src/core/model/callback.h @@ -805,18 +805,12 @@ namespace ns3 class CallbackValue : public AttributeValue { public: - /** Constructor */ CallbackValue(); - /** - * Copy constructor - * \param [in] base Callback to copy - */ - CallbackValue(const CallbackBase& base); - /** Destructor */ + CallbackValue(const CallbackBase& value); ~CallbackValue() override; - /** \param [in] base The CallbackBase to use */ - void Set(CallbackBase base); - /* Documented by print-introspected-doxygen.cc */ + // Documented by print-introspected-doxygen.cc + void Set(const CallbackBase& value); + CallbackBase Get(); template bool GetAccessor(T& value) const; /** \return A copy of this CallBack */ diff --git a/src/core/model/enum.h b/src/core/model/enum.h index 3849abd79..454d5d0ef 100644 --- a/src/core/model/enum.h +++ b/src/core/model/enum.h @@ -62,12 +62,7 @@ class EnumValue : public AttributeValue { public: EnumValue(); - /** - * Construct from an explicit value. - * - * \param [in] value The value to begin with. - */ - EnumValue(T value); + EnumValue(const T& value); void Set(T value); T Get() const; @@ -85,7 +80,7 @@ template EnumValue::EnumValue() = default; template -EnumValue::EnumValue(T value) +EnumValue::EnumValue(const T& value) : m_value(value) { } diff --git a/src/core/model/object-base.cc b/src/core/model/object-base.cc index 6a9b78df7..b82888283 100644 --- a/src/core/model/object-base.cc +++ b/src/core/model/object-base.cc @@ -36,6 +36,13 @@ namespace ns3 { // Explicit instantiation declaration + +/** + * \ingroup callback + * Explicit instantiation for ObjectBase + * \return A wrapper Callback + * \sa ns3::MakeCallback + */ template Callback MakeCallback(ObjectBase* (*)()); template Callback::Callback(); template class CallbackImpl; diff --git a/src/core/model/pair.h b/src/core/model/pair.h index 460706a58..44c5952f2 100644 --- a/src/core/model/pair.h +++ b/src/core/model/pair.h @@ -47,10 +47,19 @@ operator<<(std::ostream& os, const std::pair& p) return os; } -// Doxygen for this class is auto-generated by -// utils/print-introspected-doxygen.h +/** + * \ingroup attributes + * \defgroup attribute_Pair Pair Attribute + * AttributeValue implementation for Pair + */ -/** Hold objects of type std::pair. */ +/** + * \ingroup attribute_Pair + * AttributeValue implementation for Pair. + * Hold objects of type std::pair. + * + * \see AttributeValue + */ template class PairValue : public AttributeValue { @@ -64,14 +73,18 @@ class PairValue : public AttributeValue /** Type returned by Get or passed in Set. */ typedef typename std::pair result_type; - PairValue(); + PairValue() + : m_value(std::make_pair(Create(), Create())){}; /** * Construct this PairValue from a std::pair * * \param [in] value Value with which to construct. */ - PairValue(const result_type& value); // "import" constructor + PairValue(const result_type& value) + { + Set(value); + }; // "import" constructor // Inherited Ptr Copy() const override; @@ -86,16 +99,30 @@ class PairValue : public AttributeValue * \return stored value as std::pair. */ result_type Get() const; - /* Documented by print-introspected-doxygen.cc */ + /** + * Set the value. + * \param [in] value The value to adopt. + */ void Set(const result_type& value); + /** + * Access the Pair value as type \p T. + * \tparam T \explicit The type to cast to. + * \param [out] value The Pair value, as type \p T. + * \returns true. + */ template bool GetAccessor(T& value) const; private: - value_type m_value; + value_type m_value; //!< The stored Pair instance. }; +/** + * \ingroup attribute_Pair + * AttributeChecker implementation for PairValue. + * \see AttributeChecker + */ class PairChecker : public AttributeChecker { public: @@ -120,6 +147,8 @@ class PairChecker : public AttributeChecker }; /** + * \ingroup attribute_Pair + * * Make a PairChecker from a PairValue. * * This function returns a Pointer to a non-const instance to @@ -131,6 +160,8 @@ template Ptr MakePairChecker(const PairValue& value); /** + * \ingroup attribute_Pair + * * Make a PairChecker from abscissa and ordinate AttributeCheckers. * * This function returns a Pointer to a const instance since both @@ -145,6 +176,8 @@ Ptr MakePairChecker(Ptr firstche Ptr secondchecker); /** + * \ingroup attribute_Pair + * * Make a PairChecker without abscissa and ordinate AttributeCheckers. * * \return Pointer to PairChecker instance. @@ -152,6 +185,16 @@ Ptr MakePairChecker(Ptr firstche template Ptr MakePairChecker(); +/** + * \ingroup attribute_Pair + * + * Create an AttributeAccessor for std::pair<>. + * \tparam A \explicit The type of pair.first. + * \tparam B \explicit The type of pair.second. + * \tparam T1 \deduced The argument pair type. + * \param [in] a1 The std::pair to be accessed. + * \returns The AttributeAccessor. + */ template Ptr MakePairAccessor(T1 a1); @@ -171,6 +214,8 @@ namespace internal { /** + * \ingroup attribute_Pair + * * Internal checker class templated to each AttributeChecker * for each entry in the pair. */ @@ -272,18 +317,6 @@ MakePairChecker() return MakeSimpleAttributeChecker>(pairName, underlyingType); } -template -PairValue::PairValue() - : m_value(std::make_pair(Create(), Create())) -{ -} - -template -PairValue::PairValue(const typename PairValue::result_type& value) -{ - Set(value); -} - template Ptr PairValue::Copy() const @@ -374,14 +407,6 @@ PairValue::GetAccessor(T& value) const return true; } -/** - * Create an AttributeAccessor for std::pair<>. - * \tparam A \explicit The type of pair.first. - * \tparam B \explicit The type of pair.second. - * \tparam T1 \deduced The argument pair type. - * \param [in] a1 The std::pair to be accessed. - * \returns The AttributeAccessor. - */ template Ptr MakePairAccessor(T1 a1) diff --git a/src/core/model/pointer.cc b/src/core/model/pointer.cc index dbb232f90..3ed2227b0 100644 --- a/src/core/model/pointer.cc +++ b/src/core/model/pointer.cc @@ -40,7 +40,7 @@ PointerValue::PointerValue() NS_LOG_FUNCTION(this); } -PointerValue::PointerValue(Ptr object) +PointerValue::PointerValue(const Ptr& object) : m_value(object) { NS_LOG_FUNCTION(object); diff --git a/src/core/model/pointer.h b/src/core/model/pointer.h index 228226def..437198b79 100644 --- a/src/core/model/pointer.h +++ b/src/core/model/pointer.h @@ -31,8 +31,19 @@ namespace ns3 { -// Additional docs for class PointerValue: -/** Hold objects of type Ptr. */ +/** + * \ingroup attributes + * \defgroup attribute_Pointer Pointer Attribute + * AttributeValue implementation for Pointer. + * Hold objects of type Ptr. + */ + +/** + * \ingroup attribute_Pointer + * \class ns3::PointerValue "pointer.h" + * AttributeValue implementation for Pointer. Hold objects of type Ptr. + * \see AttributeValue + */ class PointerValue : public AttributeValue { public: @@ -43,7 +54,7 @@ class PointerValue : public AttributeValue * * \param [in] object The object to begin with. */ - PointerValue(Ptr object); + PointerValue(const Ptr& object); /** * Set the value from by reference an Object. @@ -74,14 +85,26 @@ class PointerValue : public AttributeValue template operator Ptr() const; - // Documentation generated by print-introspected-doxygen.cc + /** + * Set the value. + * \param [in] value The value to adopt. + */ template void Set(const Ptr& value); - /** \tparam T \explicit The type to cast to. */ + /** + * \returns The Pointer value. + * \tparam T \explicit The type to cast to. + */ template Ptr Get() const; + /** + * Access the Pointer value as type \p T. + * \tparam T \explicit The type to cast to. + * \param [out] value The Pointer value, as type \p T. + * \returns true. + */ template bool GetAccessor(Ptr& value) const; @@ -90,9 +113,14 @@ class PointerValue : public AttributeValue bool DeserializeFromString(std::string value, Ptr checker) override; private: - Ptr m_value; + Ptr m_value; //!< The stored Pointer instance. }; +/** + * \ingroup attribute_Pointer + * AttributeChecker implementation for PointerValue. + * \see AttributeChecker + */ class PointerChecker : public AttributeChecker { public: @@ -104,6 +132,7 @@ class PointerChecker : public AttributeChecker }; /** + * \ingroup attribute_Pointer * Create a PointerChecker for a type. * \tparam T \explicit The underlying type. * \returns The PointerChecker. @@ -123,7 +152,10 @@ namespace ns3 namespace internal { -/** PointerChecker implementation. */ +/** + * \ingroup attribute_Pointer + * PointerChecker implementation. + */ template class PointerChecker : public ns3::PointerChecker { @@ -226,6 +258,23 @@ PointerValue::GetAccessor(Ptr& v) const ATTRIBUTE_ACCESSOR_DEFINE(Pointer); +// Documentation of the functions defined by the macro. +// not documented by print-introspected-doxygen because +// Pointer has custom functions. + +/** + * \ingroup attribute_Pointer + * \fn ns3::Ptr ns3::MakePointerAccessor (T1 a1) + * \copydoc ns3::MakeAccessorHelper(T1) + * \see AttributeAccessor + */ +/** + * \ingroup attribute_Pointer + * \fn ns3::Ptr ns3::MakePointerAccessor (T1 a1, T2 a2) + * \copydoc ns3::MakeAccessorHelper(T1,T2) + * \see AttributeAccessor + */ + template Ptr MakePointerChecker() diff --git a/src/core/model/tuple.h b/src/core/model/tuple.h index 570c2726b..422bbab04 100644 --- a/src/core/model/tuple.h +++ b/src/core/model/tuple.h @@ -57,12 +57,21 @@ operator<<(std::ostream& os, const std::tuple& t) return os; } -// Doxygen for this class is auto-generated by -// utils/print-introspected-doxygen.h +/** + * \ingroup attributes + * \defgroup attribute_Tuple Tuple Attribute + * AttributeValue implementation for Tuple + */ /** + * \ingroup attribute_Tuple + * + * AttributeValue implementation for Tuple. + * * Hold objects of type std::tuple. * \tparam Args \explicit The list of AttributeValues to be held by this TupleValue + * + * \see AttributeValue */ template class TupleValue : public AttributeValue @@ -96,6 +105,8 @@ class TupleValue : public AttributeValue result_type Get() const; /** * Set the stored values. + * + * \param value The stored value */ void Set(const result_type& value); @@ -110,6 +121,7 @@ class TupleValue : public AttributeValue * * \tparam T \deduced the type of the given variable (normally, the argument type * of a set method or the type of a data member) + * \param [out] value The stored value * \return true if the given variable was set */ template @@ -131,6 +143,8 @@ class TupleValue : public AttributeValue }; /** + * \ingroup attribute_Tuple + * * Create a TupleValue object. Enable to write code like this snippet: * * \code @@ -149,6 +163,8 @@ template auto MakeTupleValue(T2 t); /** + * \ingroup attribute_Tuple + * * Checker for attribute values storing tuples. */ class TupleChecker : public AttributeChecker @@ -163,6 +179,8 @@ class TupleChecker : public AttributeChecker }; /** + * \ingroup attribute_Tuple + * * Create a TupleChecker from AttributeCheckers associated with TupleValue elements. * * \tparam Args \explicit Attribute value types @@ -174,6 +192,8 @@ template Ptr MakeTupleChecker(Ts... checkers); /** + * \ingroup attribute_Tuple + * * Create an AttributeAccessor for a class data member of type tuple, * or a lone class get functor or set method. * @@ -188,6 +208,8 @@ template Ptr MakeTupleAccessor(T1 a1); /** + * \ingroup attribute_Tuple + * * Create an AttributeAccessor using a pair of get functor * and set methods from a class. * @@ -343,6 +365,8 @@ namespace internal { /** + * \ingroup attribute_Tuple + * * Internal checker class templated to each AttributeChecker * for each entry in the tuple. */ @@ -418,6 +442,8 @@ class TupleChecker : public ns3::TupleChecker }; /** + * \ingroup attribute_Tuple + * * Helper class defining static methods for MakeTupleChecker and MakeTupleAccessor * that are called when user specifies the list of AttributeValue types included * in a TupleValue type. @@ -454,6 +480,8 @@ struct TupleHelper }; /** + * \ingroup attribute_Tuple + * * Helper class defining static methods for MakeTupleValue, MakeTupleChecker and * MakeTupleAccessor that are called when user provides a std::tuple of the * AttributeValue types included in a TupleValue type. diff --git a/src/core/model/vector.cc b/src/core/model/vector.cc index 26a765da1..8aeb79353 100644 --- a/src/core/model/vector.cc +++ b/src/core/model/vector.cc @@ -27,7 +27,7 @@ /** * \file - * \ingroup attribute_Vector + * \ingroup geometry * ns3::Vector, ns3::Vector2D and ns3::Vector3D attribute value implementations. */ diff --git a/src/core/model/vector.h b/src/core/model/vector.h index 90c65874a..0f1254e96 100644 --- a/src/core/model/vector.h +++ b/src/core/model/vector.h @@ -318,47 +318,53 @@ ATTRIBUTE_HELPER_HEADER(Vector3D); ATTRIBUTE_HELPER_HEADER(Vector2D); /** + * \ingroup attribute_Vector3D * \relates Vector3D * Vector alias typedef for compatibility with mobility models */ typedef Vector3D Vector; /** + * \ingroup attribute_Vector3D * \relates Vector3D * Vector alias typedef for compatibility with mobility models */ typedef Vector3DValue VectorValue; /** + * \ingroup attribute_Vector3D * \relates Vector3D * Vector alias typedef for compatibility with mobility models */ typedef Vector3DChecker VectorChecker; -// Document these by hand so they go in group attribute_Vector3D -/** - * \relates Vector3D - * \fn ns3::Ptr ns3::MakeVectorAccessor (T1 a1) - * \copydoc ns3::MakeAccessorHelper(T1) - * \see AttributeAccessor - */ - -/** - * \relates Vector3D - * \fn ns3::Ptr ns3::MakeVectorAccessor (T1 a1, T2 a2) - * \copydoc ns3::MakeAccessorHelper(T1,T2) - * \see AttributeAccessor - */ - ATTRIBUTE_ACCESSOR_DEFINE(Vector); -/** - * \relates Vector3D - * \returns The AttributeChecker. - * \see AttributeChecker - */ Ptr MakeVectorChecker(); } // namespace ns3 +// Document these by hand so they go in group attribute_Vector3D + +/*! +\ingroup attribute_Vector3D +\fn ns3::Ptr ns3::MakeVectorAccessor (T1 a1) +\copydoc ns3::MakeAccessorHelper(T1) +\see AttributeAccessor +*/ + +/*! +\ingroup attribute_Vector3D +\fn ns3::Ptr ns3::MakeVectorAccessor (T1 a1, T2 a2) +\copydoc ns3::MakeAccessorHelper(T1,T2) +\see AttributeAccessor +*/ + +/*! +\ingroup attribute_Vector3D +\fn ns3::Ptr ns3::MakeVectorChecker () +\returns The AttributeChecker. +\see AttributeChecker +*/ + #endif /* NS3_VECTOR_H */ diff --git a/src/core/model/win32-fd-reader.cc b/src/core/model/win32-fd-reader.cc index 457dd669f..c376bdaa7 100644 --- a/src/core/model/win32-fd-reader.cc +++ b/src/core/model/win32-fd-reader.cc @@ -41,7 +41,10 @@ namespace ns3 NS_LOG_COMPONENT_DEFINE("FdReader"); +// conditional compilation to avoid Doxygen errors +#ifdef __WIN32__ bool FdReader::winsock_initialized = false; +#endif FdReader::FdReader() : m_fd(-1), diff --git a/src/mesh/model/dot11s/ie-dot11s-id.h b/src/mesh/model/dot11s/ie-dot11s-id.h index faa2fb547..40eda950e 100644 --- a/src/mesh/model/dot11s/ie-dot11s-id.h +++ b/src/mesh/model/dot11s/ie-dot11s-id.h @@ -32,7 +32,6 @@ namespace dot11s /** * \brief a IEEE 802.11 Mesh ID element (Section 8.4.2.101 of IEEE 802.11-2012) - * \see attribute_IeMeshId */ class IeMeshId : public WifiInformationElement { diff --git a/src/wifi/model/wifi-mgt-header.h b/src/wifi/model/wifi-mgt-header.h index c666e6b1d..5df2207ec 100644 --- a/src/wifi/model/wifi-mgt-header.h +++ b/src/wifi/model/wifi-mgt-header.h @@ -325,9 +325,9 @@ class MgtHeaderInPerStaProfile> to the Per-STA Profile subelement */ }; -/** - * Implementation of the templates declared above. - */ +// +// Implementation of the templates declared above. +// template template , Elems> + ...) == 0, int>> diff --git a/utils/print-introspected-doxygen.cc b/utils/print-introspected-doxygen.cc index aae99921f..7fb6f507f 100644 --- a/utils/print-introspected-doxygen.cc +++ b/utils/print-introspected-doxygen.cc @@ -1227,15 +1227,7 @@ PrintAttributeValueSection(std::ostream& os, const std::string& name, const bool << "AttributeValue implementation for " << name << "\n"; if (seeBase) { - // Some classes don't live in ns3::. Yuck - if (name != "IeMeshId") - { - os << seeAlso << "ns3::" << name << "\n"; - } - else - { - os << seeAlso << "ns3::dot11s::" << name << "\n"; - } + os << seeAlso << "ns3::" << name << "\n"; } os << commentStop; @@ -1271,20 +1263,12 @@ PrintAttributeValueWithName(std::ostream& os, os << seeAlso << "AttributeValue" << std::endl; os << commentStop; - // Copy ctor: Value::Value - os << commentStart << functionStart << name << qualClass << "::" << valClass; - if ((name == "EmptyAttribute") || (name == "ObjectPtrContainer")) - { - // Just default constructors. - os << "()\n"; - } - else - { - // Copy constructors - os << "(const " << type << " & value)\n" - << "Copy constructor.\n" - << argument << "[in] value The " << name << " value to copy.\n"; - } + // Ctor: Value::Value + os << commentStart << functionStart << qualClass << "::" << valClass; + // Constructors + os << "(const " << type << " & value)\n" + << "Constructor.\n" + << argument << "[in] value The " << name << " value to use.\n"; os << commentStop; // Value::Get () const @@ -1430,7 +1414,6 @@ PrintAttributeImplementations(std::ostream& os) { "Box", "Box", true, "box.h" }, { "DataRate", "DataRate", true, "data-rate.h" }, { "Length", "Length", true, "length.h" }, - { "IeMeshId", "IeMeshId", true, "ie-dot11s-id.h" }, { "Ipv4Address", "Ipv4Address", true, "ipv4-address.h" }, { "Ipv4Mask", "Ipv4Mask", true, "ipv4-address.h" }, { "Ipv6Address", "Ipv6Address", true, "ipv6-address.h" }, @@ -1446,7 +1429,6 @@ PrintAttributeImplementations(std::ostream& os) { "TypeId", "TypeId", true, "type-id.h" }, { "UanModesList", "UanModesList", true, "uan-tx-mode.h" }, { "ValueClassTest", "ValueClassTest", false, "attribute-test-suite.cc" /* core/test/ */ }, - { "Vector", "Vector", true, "vector.h" }, { "Vector2D", "Vector2D", true, "vector.h" }, { "Vector3D", "Vector3D", true, "vector.h" }, { "Waypoint", "Waypoint", true, "waypoint.h" }, @@ -1454,11 +1436,10 @@ PrintAttributeImplementations(std::ostream& os) // All three (Value, Access and Checkers) defined, but custom { "Boolean", "bool", false, "boolean.h" }, - { "Callback", "Callback", true, "callback.h" }, + { "Callback", "CallbackBase", true, "callback.h" }, { "Double", "double", false, "double.h" }, - { "Enum", "int", false, "enum.h" }, + { "Enum", "T", false, "enum.h" }, { "Integer", "int64_t", false, "integer.h" }, - { "Pointer", "Pointer", false, "pointer.h" }, { "String", "std::string", false, "string.h" }, { "Time", "Time", true, "nstime.h" }, { "Uinteger", "uint64_t", false, "uinteger.h" }, @@ -1473,18 +1454,6 @@ PrintAttributeImplementations(std::ostream& os) ++i; } - // Special cases - PrintAttributeValueSection(os, "EmptyAttribute", false); - PrintAttributeValueWithName(os, "EmptyAttribute", "EmptyAttribute", "attribute.h"); - - // ObjectPtrContainer is already documented. - // PrintAttributeValueSection(os, "ObjectPtrContainer", false); - // PrintAttributeValueWithName(os, - // "ObjectPtrContainer", - // "ObjectPtrContainer", - // "object-ptr-container.h"); - // PrintMakeChecker(os, "ObjectPtrContainer", "object-ptr-container.h"); - PrintAttributeValueSection(os, "ObjectVector", false); PrintMakeAccessors(os, "ObjectVector"); PrintMakeChecker(os, "ObjectVector", "object-vector.h"); @@ -1493,19 +1462,6 @@ PrintAttributeImplementations(std::ostream& os) PrintMakeAccessors(os, "ObjectMap"); PrintMakeChecker(os, "ObjectMap", "object-map.h"); - PrintAttributeValueSection(os, "Pair", false); - PrintAttributeValueWithName(os, "Pair", "std::pair", "pair.h"); - PrintMakeChecker(os, "Pair", "pair.h"); - - PrintAttributeValueSection(os, "Tuple", false); - PrintAttributeValueWithName(os, "Tuple", "std::tuple", "tuple.h"); - PrintMakeChecker(os, "Tuple", "tuple.h"); - - // AttributeContainer is already documented. - // PrintAttributeValueSection (os, "AttributeContainer", false); - // PrintAttributeValueWithName (os, "AttributeContainer", "AttributeContainer", - // "attribute-container.h"); - // PrintMakeChecker(os, "AttributeContainer", "attribute-container.h"); } // PrintAttributeImplementations () /***************************************************************