Config system implementation class. More...
Public Member Functions | |
bool | ConnectFailSafe (std::string path, const CallbackBase &cb) |
bool | ConnectWithoutContextFailSafe (std::string path, const CallbackBase &cb) |
void | Disconnect (std::string path, const CallbackBase &cb) |
void | DisconnectWithoutContext (std::string path, const CallbackBase &cb) |
Ptr< Object > | GetRootNamespaceObject (std::size_t i) const |
std::size_t | GetRootNamespaceObjectN () const |
MatchContainer | LookupMatches (std::string path) |
void | RegisterRootNamespaceObject (Ptr< Object > obj) |
void | Set (std::string path, const AttributeValue &value) |
bool | SetFailSafe (std::string path, const AttributeValue &value) |
void | UnregisterRootNamespaceObject (Ptr< Object > obj) |
Public Member Functions inherited from ns3::Singleton< ConfigImpl > | |
Singleton (const Singleton< ConfigImpl > &)=delete | |
Singleton & | operator= (const Singleton< ConfigImpl > &)=delete |
Private Types | |
typedef std::vector< Ptr< Object > > | Roots |
Container type to hold the root Config path tokens. More... | |
Private Member Functions | |
void | ParsePath (std::string path, std::string *root, std::string *leaf) const |
Break a Config path into the leading path and the last leaf token. More... | |
Private Attributes | |
Roots | m_roots |
The list of Config path roots. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::Singleton< ConfigImpl > | |
static ConfigImpl * | Get () |
Get a pointer to the singleton instance. More... | |
Protected Member Functions inherited from ns3::Singleton< ConfigImpl > | |
Singleton () | |
Constructor. More... | |
virtual | ~Singleton () |
Destructor. More... | |
|
private |
bool ns3::Config::ConfigImpl::ConnectFailSafe | ( | std::string | path, |
const CallbackBase & | cb | ||
) |
[in] | path | A path to match trace sources. |
[in] | cb | The callback to connect to the matching trace sources. |
This function will attempt to find all trace sources which match the input path and will then connect the input callback to them in such a way that the callback will receive an extra context string upon trace event notification.
true
if any trace sources could be connected. Definition at line 750 of file config.cc.
References openflow-switch::container, LookupMatches(), NS_LOG_FUNCTION, and ParsePath().
Referenced by ns3::Config::ConnectFailSafe().
bool ns3::Config::ConfigImpl::ConnectWithoutContextFailSafe | ( | std::string | path, |
const CallbackBase & | cb | ||
) |
[in] | path | A path to match trace sources. |
[in] | cb | The callback to connect to the matching trace sources. |
This function will attempt to find all trace sources which match the input path and will then connect the input callback to them. If no matching trace sources are found, this method will return false; otherwise true.
true
if any trace sources could be connected. Definition at line 721 of file config.cc.
References openflow-switch::container, LookupMatches(), NS_LOG_FUNCTION, and ParsePath().
Referenced by ns3::Config::ConnectWithoutContextFailSafe().
void ns3::Config::ConfigImpl::Disconnect | ( | std::string | path, |
const CallbackBase & | cb | ||
) |
[in] | path | A path to match trace sources. |
[in] | cb | The callback to connect to the matching trace sources. |
This function undoes the work of Config::ConnectWithContext.
Definition at line 762 of file config.cc.
References openflow-switch::container, LookupMatches(), NS_LOG_FUNCTION, NS_LOG_WARN, and ParsePath().
Referenced by ns3::Config::Disconnect().
void ns3::Config::ConfigImpl::DisconnectWithoutContext | ( | std::string | path, |
const CallbackBase & | cb | ||
) |
[in] | path | A path to match trace sources. |
[in] | cb | The callback to disconnect to the matching trace sources. |
This function undoes the work of Config::Connect.
Definition at line 732 of file config.cc.
References openflow-switch::container, LookupMatches(), NS_LOG_FUNCTION, NS_LOG_WARN, and ParsePath().
Referenced by ns3::Config::DisconnectWithoutContext().
[in] | i | The index of the requested object. |
Definition at line 848 of file config.cc.
References m_roots, and NS_LOG_FUNCTION.
Referenced by ns3::Config::GetRootNamespaceObject().
std::size_t ns3::Config::ConfigImpl::GetRootNamespaceObjectN | ( | ) | const |
Definition at line 841 of file config.cc.
References m_roots, and NS_LOG_FUNCTION.
Referenced by ns3::Config::GetRootNamespaceObjectN().
MatchContainer ns3::Config::ConfigImpl::LookupMatches | ( | std::string | path | ) |
[in] | path | The path to perform a match against |
Definition at line 781 of file config.cc.
References m_roots, and NS_LOG_FUNCTION.
Referenced by ConnectFailSafe(), ConnectWithoutContextFailSafe(), Disconnect(), DisconnectWithoutContext(), ns3::Config::LookupMatches(), Set(), and SetFailSafe().
|
private |
Break a Config path into the leading path and the last leaf token.
[in] | path | The Config path. |
[in,out] | root | The leading part of the path, up to the final slash. |
[in,out] | leaf | The trailing part of the path. |
Definition at line 685 of file config.cc.
References NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ConnectFailSafe(), ConnectWithoutContextFailSafe(), Disconnect(), DisconnectWithoutContext(), Set(), and SetFailSafe().
[in] | obj | A new root object |
Each root object is used during path matching as the root of the path by Config::Connect, and Config::Set.
Definition at line 819 of file config.cc.
References m_roots, and NS_LOG_FUNCTION.
Referenced by ns3::Config::RegisterRootNamespaceObject().
void ns3::Config::ConfigImpl::Set | ( | std::string | path, |
const AttributeValue & | value | ||
) |
[in] | path | A path to match attributes. |
[in] | value | The value to set in all matching attributes. |
This function will attempt to find attributes which match the input path and will then set their value to the input value. If no such attributes are found, the function will throw a fatal error; use SetFailSafe if the lack of a match is to be permitted.
Definition at line 697 of file config.cc.
References openflow-switch::container, LookupMatches(), NS_LOG_FUNCTION, and ParsePath().
Referenced by ns3::Config::Set().
bool ns3::Config::ConfigImpl::SetFailSafe | ( | std::string | path, |
const AttributeValue & | value | ||
) |
[in] | path | A path to match attributes. |
[in] | value | The value to set in all matching attributes. |
This function will attempt to find attributes which match the input path and will then set their value to the input value, and will return true if at least one such attribute is found.
true
if any matching attributes could be set. Definition at line 709 of file config.cc.
References openflow-switch::container, LookupMatches(), NS_LOG_FUNCTION, and ParsePath().
Referenced by ns3::Config::SetFailSafe().
[in] | obj | A new root object |
This function undoes the work of Config::RegisterRootNamespaceObject.
Definition at line 826 of file config.cc.
References m_roots, and NS_LOG_FUNCTION.
Referenced by ns3::Config::UnregisterRootNamespaceObject().
|
private |
The list of Config path roots.
Definition at line 680 of file config.cc.
Referenced by GetRootNamespaceObject(), GetRootNamespaceObjectN(), LookupMatches(), RegisterRootNamespaceObject(), and UnregisterRootNamespaceObject().