All these macros can be used to generate automatically the code for subclasses of AttributeValue, AttributeAccessor, and, AttributeChecker, which can be used to give attribute powers to a normal class. More...
Modules | |
Attribute Implementation | |
These are the internal implementation functions for the Attribute system. | |
Files | |
file | attribute-helper.h |
Declaration of Attribute helper macros. | |
Macros | |
#define | ATTRIBUTE_ACCESSOR_DEFINE(type) |
Define the attribute accessor functions MakeTypeAccessor for class type . More... | |
#define | ATTRIBUTE_CHECKER_DEFINE(type) |
Declare the AttributeChecker class <type>Checker and the MakeTypeChecker function for class type . More... | |
#define | ATTRIBUTE_CHECKER_IMPLEMENT(type) |
Define the MakeTypeChecker function for class type . More... | |
#define | ATTRIBUTE_CHECKER_IMPLEMENT_WITH_NAME(type, name) |
Define the MakeTypeChecker function for class type . More... | |
#define | ATTRIBUTE_CONVERTER_DEFINE(type) |
Define the conversion operators class type and Attribute instances. More... | |
#define | ATTRIBUTE_HELPER_CPP(type) |
Define the attribute value, accessor and checkers for class type . More... | |
#define | ATTRIBUTE_HELPER_HEADER(type) |
Declare the attribute value, accessor and checkers for class type . More... | |
#define | ATTRIBUTE_VALUE_DEFINE(Name) ATTRIBUTE_VALUE_DEFINE_WITH_NAME (Name,Name) |
Declare the attribute value class <Name>Value for the class Name . More... | |
#define | ATTRIBUTE_VALUE_DEFINE_WITH_NAME(type, name) |
Declare the attribute value class <name>Value for underlying class type . More... | |
#define | ATTRIBUTE_VALUE_IMPLEMENT(type) ATTRIBUTE_VALUE_IMPLEMENT_WITH_NAME (type,type) |
Define the class methods belonging to attribute value class <type>Value for class type . More... | |
#define | ATTRIBUTE_VALUE_IMPLEMENT_WITH_NAME(type, name) |
Define the class methods belonging to the attribute value class <name>Value of the underlying class type . More... | |
All these macros can be used to generate automatically the code for subclasses of AttributeValue, AttributeAccessor, and, AttributeChecker, which can be used to give attribute powers to a normal class.
i.e., the user class can then effectively be made an attribute.
There are two kinds of helper macros:
The simple macros are implemented in terms of the complex macros and should generally be preferred over the complex macros.
#define ATTRIBUTE_ACCESSOR_DEFINE | ( | type | ) |
Define the attribute accessor functions MakeTypeAccessor
for class type
.
type | the name of the class |
This macro defines and generates the code for the implementation of the MakeTypeAccessor
template functions. This macro is typically invoked in a class header to allow users of this class to view and use the template functions defined here. This macro is implemented through the helper templates functions ns3::MakeAccessorHelper<>.
Definition at line 152 of file attribute-helper.h.
#define ATTRIBUTE_CHECKER_DEFINE | ( | type | ) |
Declare the AttributeChecker class <type>Checker
and the MakeTypeChecker
function for class type
.
type | the name of the class |
This macro declares the <type>Checker
class and the associated MakeTypeChecker
function.
(Note that the <type>Checker
class needs no implementation since it just inherits all its implementation from AttributeChecker.)
Typically invoked in the class header file.
Definition at line 252 of file attribute-helper.h.
#define ATTRIBUTE_CHECKER_IMPLEMENT | ( | type | ) |
Define the MakeTypeChecker
function for class type
.
type | the name of the class |
This macro implements the MakeTypeChecker
function.
Typically invoked in the source file..
Definition at line 331 of file attribute-helper.h.
#define ATTRIBUTE_CHECKER_IMPLEMENT_WITH_NAME | ( | type, | |
name | |||
) |
Define the MakeTypeChecker
function for class type
.
type | the name of the class. |
name | the string name of the underlying type. |
This macro implements the MakeTypeChecker
function for class type
.
Typically invoked in the source file..
Definition at line 350 of file attribute-helper.h.
#define ATTRIBUTE_CONVERTER_DEFINE | ( | type | ) |
Define the conversion operators class type
and Attribute instances.
type | the name of the class |
This macro defines the conversion operators for class type
to and from instances of type Attribute. Typically invoked in the class header file.
Definition at line 234 of file attribute-helper.h.
#define ATTRIBUTE_HELPER_CPP | ( | type | ) |
Define the attribute value, accessor and checkers for class type
.
type | the name of the class |
This macro implements
<type>Value
class methods,MakeTypeChecker
function,for class type
.
This macro should be invoked from the class implementation file.
Definition at line 399 of file attribute-helper.h.
#define ATTRIBUTE_HELPER_HEADER | ( | type | ) |
Declare the attribute value, accessor and checkers for class type
.
type | the name of the class |
This macro declares:
<type>Value
,MakeTypeAccessor
,<type>Checker
and the MakeTypeChecker
function,for class type
.
This macro should be invoked outside of the class declaration in its public header.
Definition at line 377 of file attribute-helper.h.
#define ATTRIBUTE_VALUE_DEFINE | ( | Name | ) | ATTRIBUTE_VALUE_DEFINE_WITH_NAME (Name,Name) |
Declare the attribute value class <Name>Value
for the class Name
.
Name | the name of the class. |
This macro declares the class NameValue
associated to class Name
. This macro is typically invoked in the class header file.
Definition at line 215 of file attribute-helper.h.
#define ATTRIBUTE_VALUE_DEFINE_WITH_NAME | ( | type, | |
name | |||
) |
Declare the attribute value class <name>Value
for underlying class type
.
type | The underlying type name |
name | The token to use in defining the accessor name. |
This macro declares the class TypeValue
associated with class type
. This macro is typically invoked in the class header file.
This can be used directly for things like plain old data, such as std::string
, to create the attribute value class StringValue.
Definition at line 180 of file attribute-helper.h.
#define ATTRIBUTE_VALUE_IMPLEMENT | ( | type | ) | ATTRIBUTE_VALUE_IMPLEMENT_WITH_NAME (type,type) |
Define the class methods belonging to attribute value class <type>Value
for class type
.
type | the name of the class. |
This macro implements the <type>Value
class methods (including the <type>Value::SerializeToString
and <type>Value::DeserializeFromString
methods).
Typically invoked in the source file.
Definition at line 316 of file attribute-helper.h.
#define ATTRIBUTE_VALUE_IMPLEMENT_WITH_NAME | ( | type, | |
name | |||
) |
Define the class methods belonging to the attribute value class <name>Value
of the underlying class type
.
type | The underlying type name |
name | The token to use in defining the accessor name. |
This macro implements the <type>Value
class methods (including the <type>Value::SerializeToString
and <type>Value::DeserializeFromString
methods).
Typically invoked in the source file.
Definition at line 273 of file attribute-helper.h.