diff --git a/src/core/config.cc b/src/core/config.cc index 8e147346d..0d74d135a 100644 --- a/src/core/config.cc +++ b/src/core/config.cc @@ -290,6 +290,9 @@ public: void RegisterRootNamespaceObject (Ptr obj); void UnregisterRootNamespaceObject (Ptr obj); + + uint32_t GetRootNamespaceObjectN (void) const; + Ptr GetRootNamespaceObject (uint32_t i) const; private: typedef std::vector > Roots; @@ -415,6 +418,16 @@ ConfigImpl::UnregisterRootNamespaceObject (Ptr obj) } } +uint32_t +ConfigImpl::GetRootNamespaceObjectN (void) const +{ + return m_roots.size (); +} +Ptr +ConfigImpl::GetRootNamespaceObject (uint32_t i) const +{ + return m_roots[i]; +} namespace Config { @@ -467,6 +480,17 @@ void UnregisterRootNamespaceObject (Ptr obj) Singleton::Get ()->UnregisterRootNamespaceObject (obj); } +uint32_t GetRootNamespaceObjectN (void) +{ + return Singleton::Get ()->GetRootNamespaceObjectN (); +} + +Ptr GetRootNamespaceObject (uint32_t i) +{ + return Singleton::Get ()->GetRootNamespaceObject (i); +} + + } // namespace Config } // namespace ns3 diff --git a/src/core/config.h b/src/core/config.h index 7b8120270..bfb7d0f50 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -118,6 +118,17 @@ void RegisterRootNamespaceObject (Ptr obj); */ void UnregisterRootNamespaceObject (Ptr obj); +/** + * \returns the number of registered root namespace objects. + */ +uint32_t GetRootNamespaceObjectN (void); + +/** + * \param i the index of the requested object. + * \returns the requested root namespace object + */ +Ptr GetRootNamespaceObject (uint32_t i); + } // namespace Config } // namespace ns3