rename NsUnknown to Interface and NsUnknownManager to ComponentManager
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Fri, 11 May 2007 18:52:05 +0200
changeset 579 7e31a7f75fee
parent 578 e305018537c9
child 580 80f53b488bd3
rename NsUnknown to Interface and NsUnknownManager to ComponentManager
src/applications/application-list.cc
src/applications/application-list.h
src/core/component-manager.cc
src/core/component-manager.h
src/core/interface.cc
src/core/interface.h
src/internet-node/i-arp-private.cc
src/internet-node/i-arp-private.h
src/internet-node/i-ipv4-private.cc
src/internet-node/i-ipv4-private.h
src/internet-node/internet-node.cc
src/internet-node/ipv4-l4-demux.cc
src/internet-node/ipv4-l4-demux.h
src/internet-node/l3-demux.cc
src/internet-node/l3-demux.h
src/node/i-ipv4.cc
src/node/i-ipv4.h
src/node/i-udp.cc
src/node/i-udp.h
src/node/node.cc
src/node/node.h
--- a/src/applications/application-list.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/applications/application-list.cc	Fri May 11 18:52:05 2007 +0200
@@ -29,7 +29,7 @@
 const Iid ApplicationList::iid ("ApplicationList");
 
 ApplicationList::ApplicationList(Ptr<Node> n)
-  : NsUnknown (ApplicationList::iid)
+  : Interface (ApplicationList::iid)
 {}
 
 void 
@@ -43,7 +43,7 @@
       *i = 0;
     }
   m_apps.clear ();
-  NsUnknown::DoDispose ();
+  Interface::DoDispose ();
 }
   
 ApplicationList::~ApplicationList()
--- a/src/applications/application-list.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/applications/application-list.h	Fri May 11 18:52:05 2007 +0200
@@ -31,7 +31,7 @@
 
 namespace ns3 {
 
-class ApplicationList : public NsUnknown
+class ApplicationList : public Interface
 {
 public:
   static const Iid iid;
--- a/src/core/component-manager.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/core/component-manager.cc	Fri May 11 18:52:05 2007 +0200
@@ -49,15 +49,15 @@
   return a.m_classId == b.m_classId;
 }
 
-Ptr<NsUnknown>
-NsUnknownManager::Create (ClassId classId)
+Ptr<Interface>
+ComponentManager::Create (ClassId classId)
 {
-  Callback<Ptr<NsUnknown> > callback = DoGetCallback<empty,empty,empty,empty,empty> (classId);
+  Callback<Ptr<Interface> > callback = DoGetCallback<empty,empty,empty,empty,empty> (classId);
   return callback ();
 }
 
 CallbackBase *
-NsUnknownManager::Lookup (ClassId classId)
+ComponentManager::Lookup (ClassId classId)
 {
   List *list = Singleton<List>::Get ();
   for (List::const_iterator i = list->begin (); i != list->end (); i++)
@@ -71,13 +71,13 @@
 }
 
 ClassId 
-NsUnknownManager::LookupByName (std::string name)
+ComponentManager::LookupByName (std::string name)
 {
   return ClassId (Singleton<CidManager>::Get ()->LookupByName (name));
 }
 
 ClassId
-NsUnknownManager::Register (std::string name, CallbackBase *callback)
+ComponentManager::Register (std::string name, CallbackBase *callback)
 {
   ClassId classId = ClassId (name);
   List *list = Singleton<List>::Get ();
@@ -96,7 +96,7 @@
 namespace {
 
 
-class B : public ns3::NsUnknown
+class B : public ns3::Interface
 {
 public:
   static const ns3::Iid iid;
@@ -106,11 +106,11 @@
 const ns3::Iid B::iid ("IB");
 
 B::B ()
-  : NsUnknown (B::iid)
+  : Interface (B::iid)
 {}
 
 
-class A : public ns3::NsUnknown
+class A : public ns3::Interface
 {
 public:
   static const ns3::ClassId cidZero;
@@ -130,13 +130,13 @@
   int m_ui32;
 };
 
-const ns3::ClassId A::cidZero = ns3::NsUnknownManager::RegisterConstructor <A> ("A");
-const ns3::ClassId A::cidOneBool = ns3::NsUnknownManager::RegisterConstructor <A,bool> ("ABool");
-const ns3::ClassId A::cidOneUi32 = ns3::NsUnknownManager::RegisterConstructor <A,uint32_t> ("AUi32");
+const ns3::ClassId A::cidZero = ns3::ComponentManager::RegisterConstructor <A> ("A");
+const ns3::ClassId A::cidOneBool = ns3::ComponentManager::RegisterConstructor <A,bool> ("ABool");
+const ns3::ClassId A::cidOneUi32 = ns3::ComponentManager::RegisterConstructor <A,uint32_t> ("AUi32");
 const ns3::Iid A::iid ("IA");
 
 A::A ()
-  : NsUnknown (A::iid),
+  : Interface (A::iid),
     m_zeroInvoked (true),
     m_oneBoolInvoked (false),
     m_oneUi32Invoked (false)
@@ -146,7 +146,7 @@
 }
 
 A::A (bool bo)
-  : NsUnknown (A::iid),
+  : Interface (A::iid),
     m_zeroInvoked (false),
     m_oneBoolInvoked (true),
     m_oneUi32Invoked (false),
@@ -157,7 +157,7 @@
 }
 
 A::A (uint32_t i)
-  : NsUnknown (A::iid),
+  : Interface (A::iid),
     m_zeroInvoked (false),
     m_oneBoolInvoked (false),
     m_oneUi32Invoked (true),
@@ -171,30 +171,30 @@
 
 namespace ns3 {
 
-class NsUnknownManagerTest : public Test
+class ComponentManagerTest : public Test
 {
 public:
-  NsUnknownManagerTest ();
+  ComponentManagerTest ();
   virtual bool RunTests (void);
 };
 
-NsUnknownManagerTest::NsUnknownManagerTest ()
-  : Test ("NsUnknownManager")
+ComponentManagerTest::ComponentManagerTest ()
+  : Test ("ComponentManager")
 {}
 bool 
-NsUnknownManagerTest::RunTests (void)
+ComponentManagerTest::RunTests (void)
 {
   bool ok = true;
 
   Ptr<A> a = 0;
-  a = NsUnknownManager::Create<A> (A::cidZero, A::iid);
+  a = ComponentManager::Create<A> (A::cidZero, A::iid);
   if (a == 0 ||
       !a->m_zeroInvoked)
     {
       ok = false;
     }
 
-  a = NsUnknownManager::Create<A,bool> (A::cidOneBool, A::iid, true);
+  a = ComponentManager::Create<A,bool> (A::cidOneBool, A::iid, true);
   if (a == 0 ||
       !a->m_oneBoolInvoked ||
       !a->m_bool)
@@ -202,7 +202,7 @@
       ok = false;
     }
 
-  a = NsUnknownManager::Create<A,bool> (A::cidOneBool, A::iid, false);
+  a = ComponentManager::Create<A,bool> (A::cidOneBool, A::iid, false);
   if (a == 0 ||
       !a->m_oneBoolInvoked ||
       a->m_bool)
@@ -210,7 +210,7 @@
       ok = false;
     }
 
-  a = NsUnknownManager::Create<A,uint32_t> (A::cidOneUi32, A::iid, 10);
+  a = ComponentManager::Create<A,uint32_t> (A::cidOneUi32, A::iid, 10);
   if (a == 0 ||
       !a->m_oneUi32Invoked ||
       a->m_ui32 != 10)
@@ -218,7 +218,7 @@
       ok = false;
     }
 
-  a = NsUnknownManager::Create<A> (A::cidOneUi32, A::iid, (uint32_t)10);
+  a = ComponentManager::Create<A> (A::cidOneUi32, A::iid, (uint32_t)10);
   if (a == 0 ||
       !a->m_oneUi32Invoked ||
       a->m_ui32 != 10)
@@ -226,7 +226,7 @@
       ok = false;
     }
 
-  Ptr<B> b = NsUnknownManager::Create<B,uint32_t> (A::cidOneUi32, B::iid, 10);
+  Ptr<B> b = ComponentManager::Create<B,uint32_t> (A::cidOneUi32, B::iid, 10);
   if (b == 0)
     {
       ok = false;
@@ -236,7 +236,7 @@
 }
 
 
-static NsUnknownManagerTest g_unknownManagerTest;
+static ComponentManagerTest g_unknownManagerTest;
 
 } // namespace ns3
 
--- a/src/core/component-manager.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/core/component-manager.h	Fri May 11 18:52:05 2007 +0200
@@ -52,22 +52,22 @@
 private:
   ClassId (std::string name);
   ClassId (uint32_t classId);
-  friend class NsUnknownManager;
+  friend class ComponentManager;
   friend bool operator == (const ClassId &a, const ClassId &b);
   uint32_t m_classId;
 };
 
 /**
- * \brief Create any NsUnknown
+ * \brief Create any Interface
  *
  * This class keeps track of a set of ClassId, each
  * of which uniquely identifies the constructor of an
- * object which derives from the NsUnknown base class.
+ * object which derives from the Interface base class.
  * This class can also create an instance of any of
  * the objects tracked through any of their tracked
  * constructor/ClassId.
  */
-class NsUnknownManager
+class ComponentManager
 {
 public:
   /**
@@ -83,7 +83,7 @@
    * Create an instance of the object identified by its
    * ClassId. This method invokes the default constructor.
    */
-  static Ptr<NsUnknown> Create (ClassId classId);
+  static Ptr<Interface> Create (ClassId classId);
 
   /**
    * \param classId class id of the constructor to invoke.
@@ -95,7 +95,7 @@
    * ClassId.
    */
   template <typename T1>
-  static Ptr<NsUnknown> Create (ClassId classId, T1 a1);
+  static Ptr<Interface> Create (ClassId classId, T1 a1);
 
   /**
    * \param classId class id of the constructor to invoke.
@@ -108,7 +108,7 @@
    * ClassId.
    */
   template <typename T1, typename T2>
-  static Ptr<NsUnknown> Create (ClassId classId, T1 a1, T2 a2);
+  static Ptr<Interface> Create (ClassId classId, T1 a1, T2 a2);
 
   /**
    * \param classId class id of the constructor to invoke.
@@ -137,9 +137,9 @@
   template <typename T>
   static ClassId RegisterConstructor (std::string name)
   {
-    static Callback<Ptr<NsUnknown> > callback = 
-      MakeCallback (&NsUnknownManager::MakeObjectZero<T>);
-    return NsUnknownManager::Register (name, &callback);
+    static Callback<Ptr<Interface> > callback = 
+      MakeCallback (&ComponentManager::MakeObjectZero<T>);
+    return ComponentManager::Register (name, &callback);
   }
 
   /**
@@ -151,8 +151,8 @@
   template <typename T, typename T1>
   static ClassId RegisterConstructor (std::string name)
   {
-    static Callback<Ptr<NsUnknown> ,T1> callback = MakeCallback (&NsUnknownManager::MakeObjectOne<T,T1>);
-    return NsUnknownManager::Register (name, &callback);
+    static Callback<Ptr<Interface> ,T1> callback = MakeCallback (&ComponentManager::MakeObjectOne<T,T1>);
+    return ComponentManager::Register (name, &callback);
   }
 
   /**
@@ -164,8 +164,8 @@
   template <typename T, typename T1, typename T2>
   static ClassId RegisterConstructor (std::string name)
   {
-    static Callback<Ptr<NsUnknown>,T1,T2> callback = MakeCallback (&NsUnknownManager::MakeObjectTwo<T,T1,T2>);
-    return NsUnknownManager::Register (name, &callback);
+    static Callback<Ptr<Interface>,T1,T2> callback = MakeCallback (&ComponentManager::MakeObjectTwo<T,T1,T2>);
+    return ComponentManager::Register (name, &callback);
   }
 private:
   static ClassId Register (std::string name, CallbackBase *callback);
@@ -173,16 +173,16 @@
   template <typename T1, typename T2,
             typename T3, typename T4,
             typename T5>
-  static Callback<Ptr<NsUnknown>,T1,T2,T3,T4,T5> DoGetCallback (ClassId classId);
+  static Callback<Ptr<Interface>,T1,T2,T3,T4,T5> DoGetCallback (ClassId classId);
 
   template <typename T>
-  static Ptr<NsUnknown> MakeObjectZero (void);
+  static Ptr<Interface> MakeObjectZero (void);
 
   template <typename T, typename T1>
-  static Ptr<NsUnknown> MakeObjectOne (T1 a1);
+  static Ptr<Interface> MakeObjectOne (T1 a1);
 
   template <typename T, typename T1, typename T2>
-  static Ptr<NsUnknown> MakeObjectTwo (T1 a1, T2 a2);
+  static Ptr<Interface> MakeObjectTwo (T1 a1, T2 a2);
 
   typedef std::vector<std::pair<ClassId, CallbackBase *> > List;
   static List *GetList (void);
@@ -197,79 +197,79 @@
 template <typename T1, typename T2,
           typename T3, typename T4,
           typename T5>
-Callback<Ptr<NsUnknown>,T1,T2,T3,T4,T5>
-NsUnknownManager::DoGetCallback (ClassId classId)
+Callback<Ptr<Interface>,T1,T2,T3,T4,T5>
+ComponentManager::DoGetCallback (ClassId classId)
 {
   CallbackBase *callback = Lookup (classId);
   if (callback == 0)
     {
       NS_FATAL_ERROR ("Invalid Class Id.");
     }
-  Callback<Ptr<NsUnknown>, T1,T2,T3,T4,T5> reference;
+  Callback<Ptr<Interface>, T1,T2,T3,T4,T5> reference;
   reference.Assign (*callback);
   return reference;
 }
 
 
 template <typename T1>
-Ptr<NsUnknown>
-NsUnknownManager::Create (ClassId classId, T1 a1)
+Ptr<Interface>
+ComponentManager::Create (ClassId classId, T1 a1)
 {
-  Callback<Ptr<NsUnknown>, T1> callback = DoGetCallback<T1,empty,empty,empty,empty> (classId);
+  Callback<Ptr<Interface>, T1> callback = DoGetCallback<T1,empty,empty,empty,empty> (classId);
   return callback (a1);
 }
 
 template <typename T1, typename T2>
-Ptr<NsUnknown> 
-NsUnknownManager::Create (ClassId classId, T1 a1, T2 a2)
+Ptr<Interface> 
+ComponentManager::Create (ClassId classId, T1 a1, T2 a2)
 {
-  Callback<Ptr<NsUnknown> , T1,T2> callback = DoGetCallback<T1,T2,empty,empty,empty> (classId);
+  Callback<Ptr<Interface> , T1,T2> callback = DoGetCallback<T1,T2,empty,empty,empty> (classId);
   return callback (a1, a2);
 }
 
 template <typename T>
 Ptr<T>
-NsUnknownManager::Create (ClassId classId, Iid iid)
+ComponentManager::Create (ClassId classId, Iid iid)
 {
-  Ptr<NsUnknown> obj = Create (classId);
+  Ptr<Interface> obj = Create (classId);
   Ptr<T> i = obj->QueryInterface<T> (iid);
   return i;
 }
 
 template <typename T, typename T1>
 Ptr<T>
-NsUnknownManager::Create (ClassId classId, Iid iid, T1 a1)
+ComponentManager::Create (ClassId classId, Iid iid, T1 a1)
 {
-  Ptr<NsUnknown> obj = Create (classId, a1);
+  Ptr<Interface> obj = Create (classId, a1);
   Ptr<T> i = obj->QueryInterface<T> (iid);
   return i;
 }
 
 template <typename T, typename T1, typename T2>
 Ptr<T>
-NsUnknownManager::Create (ClassId classId, Iid iid, T1 a1, T2 a2)
+ComponentManager::Create (ClassId classId, Iid iid, T1 a1, T2 a2)
 {
-  Ptr<NsUnknown> obj = Create (classId, a1, a2);
+  Ptr<Interface> obj = Create (classId, a1, a2);
   Ptr<T> i = obj->QueryInterface<T> (iid);
   return i;
 }
 
 
 template <typename T>
-Ptr<NsUnknown> 
-NsUnknownManager::MakeObjectZero (void)
+Ptr<Interface> 
+ComponentManager::MakeObjectZero (void)
 {
   return MakeNewObject<T> ();
 }
 template <typename T, typename T1>
-Ptr<NsUnknown> 
-NsUnknownManager::MakeObjectOne (T1 a1)
+Ptr<Interface> 
+ComponentManager::MakeObjectOne (T1 a1)
 {
   return MakeNewObject<T> (a1);
 }
 template <typename T, typename T1, typename T2>
-Ptr<NsUnknown> 
-NsUnknownManager::MakeObjectTwo (T1 a1, T2 a2)
+Ptr<Interface> 
+ComponentManager::MakeObjectTwo (T1 a1, T2 a2)
 {
   return MakeNewObject<T> (a1, a2);
 }
--- a/src/core/interface.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/core/interface.cc	Fri May 11 18:52:05 2007 +0200
@@ -27,7 +27,7 @@
 #include "assert.h"
 #include "debug.h"
 
-NS_DEBUG_COMPONENT_DEFINE ("NsUnknown");
+NS_DEBUG_COMPONENT_DEFINE ("Interface");
 
 namespace ns3 {
 
@@ -44,34 +44,34 @@
 }
 
 
-class NsUnknownImpl
+class InterfaceImpl
 {
 public:
-  NsUnknownImpl (Iid iid, NsUnknown *interface);
-  ~NsUnknownImpl ();
+  InterfaceImpl (Iid iid, Interface *interface);
+  ~InterfaceImpl ();
   void Ref (void);
-  void RefAll (NsUnknownImpl *other);
+  void RefAll (InterfaceImpl *other);
   void Unref (void);
   void UnrefAll (void);
-  NsUnknown *PeekQueryInterface (Iid iid) const;
+  Interface *PeekQueryInterface (Iid iid) const;
   void DoDisposeAll (void);
-  void AddInterface (NsUnknown * interface);
-  void AddSelfInterface (Iid iid, NsUnknown *interface);
+  void AddInterface (Interface * interface);
+  void AddSelfInterface (Iid iid, Interface *interface);
 private:
-  typedef std::list<std::pair<Iid,NsUnknown *> > List;
+  typedef std::list<std::pair<Iid,Interface *> > List;
   uint32_t m_ref;
   List m_list;
   bool m_disposed;
 };
 
-NsUnknownImpl::NsUnknownImpl (Iid iid, NsUnknown * interface)
+InterfaceImpl::InterfaceImpl (Iid iid, Interface * interface)
   : m_ref (1),
     m_disposed (false)
 {
   NS_DEBUG ("new " << this << " ref=" << m_ref);
   m_list.push_back (std::make_pair (iid, interface));
 }
-NsUnknownImpl::~NsUnknownImpl ()
+InterfaceImpl::~InterfaceImpl ()
 {
   for (List::const_iterator i = m_list.begin ();
        i != m_list.end (); i++)
@@ -81,19 +81,19 @@
   m_list.clear ();
 }
 void 
-NsUnknownImpl::Ref (void)
+InterfaceImpl::Ref (void)
 {
   m_ref++;
   NS_DEBUG ("inc " << this << " ref=" << m_ref);
 }
 void 
-NsUnknownImpl::RefAll (NsUnknownImpl *other)
+InterfaceImpl::RefAll (InterfaceImpl *other)
 {
   m_ref += other->m_ref;
   NS_DEBUG ("inc all " << this << " o=" << other->m_ref << " ref=" << m_ref);
 }
 void 
-NsUnknownImpl::Unref (void)
+InterfaceImpl::Unref (void)
 {
   NS_ASSERT (m_ref > 0);
   m_ref--;
@@ -104,7 +104,7 @@
     }
 }
 void
-NsUnknownImpl::UnrefAll (void)
+InterfaceImpl::UnrefAll (void)
 {
   NS_ASSERT (m_ref > 0);
   m_ref = 0;
@@ -112,19 +112,19 @@
   NS_DEBUG ("dec all " << this);
 }
 void
-NsUnknownImpl::DoDisposeAll (void)
+InterfaceImpl::DoDisposeAll (void)
 {
   NS_ASSERT (!m_disposed);
   for (List::const_iterator i = m_list.begin ();
        i != m_list.end (); i++)
     {
-      NsUnknown *interface = i->second;
+      Interface *interface = i->second;
       interface->DoDispose ();
     }
   m_disposed = true;
 }
-NsUnknown *
-NsUnknownImpl::PeekQueryInterface (Iid iid) const
+Interface *
+InterfaceImpl::PeekQueryInterface (Iid iid) const
 {
   for (List::const_iterator i = m_list.begin ();
        i != m_list.end (); i++)
@@ -137,7 +137,7 @@
   return 0;
 }
 void 
-NsUnknownImpl::AddInterface (NsUnknown *interface)
+InterfaceImpl::AddInterface (Interface *interface)
 {
   for (List::const_iterator i = interface->m_impl->m_list.begin ();
        i != interface->m_impl->m_list.end (); i++)
@@ -149,53 +149,53 @@
     }
 }
 void 
-NsUnknownImpl::AddSelfInterface (Iid iid, NsUnknown *interface)
+InterfaceImpl::AddSelfInterface (Iid iid, Interface *interface)
 {
   interface->RefInternal ();
   m_list.push_back (std::make_pair (iid, interface));
 }
 
 
-NsUnknown::NsUnknown (Iid iid)
-  : m_impl (new NsUnknownImpl (iid, this)),
+Interface::Interface (Iid iid)
+  : m_impl (new InterfaceImpl (iid, this)),
     m_ref (1)
 {}
-NsUnknown::~NsUnknown ()
+Interface::~Interface ()
 {
   m_impl = 0;
   m_ref = -1;
 }
 void 
-NsUnknown::Ref (void) const
+Interface::Ref (void) const
 {
   m_impl->Ref ();
 }
 void 
-NsUnknown::Unref (void) const
+Interface::Unref (void) const
 {
   m_impl->Unref ();
 }
 
 void 
-NsUnknown::Dispose (void)
+Interface::Dispose (void)
 {
   m_impl->DoDisposeAll ();
 }
 
 void 
-NsUnknown::DoDispose (void)
+Interface::DoDispose (void)
 {
   // we do not do anything by default.
 }
 
 void
-NsUnknown::RefInternal (void)
+Interface::RefInternal (void)
 {
   m_ref++;
 }
 
 void
-NsUnknown::UnrefInternal (void)
+Interface::UnrefInternal (void)
 {
   NS_ASSERT (m_ref != 0);
   m_ref--;
@@ -205,16 +205,16 @@
     }
 }
 
-Ptr<NsUnknown>
-NsUnknown::DoQueryInterface (Iid iid) const
+Ptr<Interface>
+Interface::DoQueryInterface (Iid iid) const
 {
   return m_impl->PeekQueryInterface (iid);
 }
 
 void 
-NsUnknown::AddInterface (Ptr<NsUnknown> interface)
+Interface::AddInterface (Ptr<Interface> interface)
 {
-  NsUnknown *p = PeekPointer (interface);
+  Interface *p = PeekPointer (interface);
   m_impl->AddInterface (p);
   m_impl->RefAll (p->m_impl);
   p->m_impl->UnrefAll ();
@@ -222,7 +222,7 @@
 }
 
 void
-NsUnknown::AddSelfInterface (Iid iid, Ptr<NsUnknown> interface)
+Interface::AddSelfInterface (Iid iid, Ptr<Interface> interface)
 {
   m_impl->AddSelfInterface (iid, PeekPointer (interface));
 }
@@ -236,44 +236,44 @@
 
 namespace {
 
-class A : public ns3::NsUnknown
+class A : public ns3::Interface
 {
 public:
   static const ns3::Iid iid;
   A ()
-    : NsUnknown (A::iid)
+    : Interface (A::iid)
   {}
 };
-class B : public ns3::NsUnknown
+class B : public ns3::Interface
 {
 public:
   static const ns3::Iid iid;
   B ()
-    : NsUnknown (B::iid)
+    : Interface (B::iid)
   {}
 };
-class BaseA : public ns3::NsUnknown
+class BaseA : public ns3::Interface
 {
 public:
   static const ns3::Iid iid;
   BaseA ()
-    : NsUnknown (BaseA::iid)
+    : Interface (BaseA::iid)
   {}
 };
-class BaseB : public ns3::NsUnknown
+class BaseB : public ns3::Interface
 {
 public:
   static const ns3::Iid iid;
   BaseB ()
-    : NsUnknown (BaseB::iid)
+    : Interface (BaseB::iid)
   {}
 };
-class Base : public ns3::NsUnknown
+class Base : public ns3::Interface
 {
 public:
   static const ns3::Iid iid;
   Base ()
-    : NsUnknown (Base::iid)
+    : Interface (Base::iid)
   {}
 };
 class Derived : public Base
@@ -306,7 +306,7 @@
 };
 
 InterfaceTest::InterfaceTest ()
-  : Test ("NsUnknown")
+  : Test ("Interface")
 {}
 bool 
 InterfaceTest::RunTests (void)
--- a/src/core/interface.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/core/interface.h	Fri May 11 18:52:05 2007 +0200
@@ -26,7 +26,7 @@
 
 namespace ns3 {
 
-class NsUnknownImpl;
+class InterfaceImpl;
 
 class Iid
 {
@@ -45,15 +45,15 @@
  * inheritance where this base class is at the top of the dreaded 
  * "diamond" shape is not allowed.
  */
-class NsUnknown
+class Interface
 {
 public:
-  virtual ~NsUnknown ();
+  virtual ~Interface ();
   void Ref (void) const;
   void Unref (void) const;
 
   /**
-   * \param iid the NsUnknown id of the requested interface
+   * \param iid the Interface id of the requested interface
    */
   template <typename T>
   Ptr<T> QueryInterface (Iid iid) const;
@@ -66,7 +66,7 @@
    * will be able to perform QI on each other and their lifetimes
    * will be found by the same reference count.
    */
-  void AddInterface (Ptr<NsUnknown> interface);
+  void AddInterface (Ptr<Interface> interface);
 
   void Dispose (void);
 protected:
@@ -77,17 +77,17 @@
    * If you are a direct subclass of this class, you _must_ register
    * the name of your interface with this constructor.
    */
-  NsUnknown (Iid iid);
+  Interface (Iid iid);
   /**
    * \param iid the Interface id of the interface
    * \param a pointer to the interface object
    *
-   * If you are not a direct subclass of the ns3::NsUnknown base class,
+   * If you are not a direct subclass of the ns3::Interface base class,
    * and if you want to register yourself as another accessible interface
    * (typically, your subclass has added API), you need to call
    * this method to associate an interface id to your interface.
    */
-  void AddSelfInterface (Iid iid, Ptr<NsUnknown> interface);
+  void AddSelfInterface (Iid iid, Ptr<Interface> interface);
 protected:
   /**
    * Subclasses who want to handle the "dispose" event should
@@ -97,12 +97,12 @@
    */
   virtual void DoDispose (void);
 private:
-  friend class NsUnknownImpl;
-  NsUnknown ();
-  Ptr<NsUnknown> DoQueryInterface (Iid iid) const;
+  friend class InterfaceImpl;
+  Interface ();
+  Ptr<Interface> DoQueryInterface (Iid iid) const;
   void RefInternal (void);
   void UnrefInternal (void);
-  NsUnknownImpl *m_impl;
+  InterfaceImpl *m_impl;
   uint32_t m_ref;
 };
 
@@ -112,9 +112,9 @@
 
 template <typename T>
 Ptr<T>
-NsUnknown::QueryInterface (Iid iid) const
+Interface::QueryInterface (Iid iid) const
 {
-  Ptr<NsUnknown> found = DoQueryInterface (iid);
+  Ptr<Interface> found = DoQueryInterface (iid);
   if (found != 0)
     {
       return Ptr<T> (dynamic_cast<T *> (PeekPointer (found)));
--- a/src/internet-node/i-arp-private.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/i-arp-private.cc	Fri May 11 18:52:05 2007 +0200
@@ -28,7 +28,7 @@
 const Iid IArpPrivate::iid ("IArpPrivate");
 
 IArpPrivate::IArpPrivate (Ptr<Arp> arp)
-  : NsUnknown (IArpPrivate::iid),
+  : Interface (IArpPrivate::iid),
     m_arp (arp)
 {}
 IArpPrivate::~IArpPrivate ()
@@ -48,7 +48,7 @@
 IArpPrivate::DoDispose (void)
 {
   m_arp = 0;
-  NsUnknown::DoDispose ();
+  Interface::DoDispose ();
 }
 
 
--- a/src/internet-node/i-arp-private.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/i-arp-private.h	Fri May 11 18:52:05 2007 +0200
@@ -31,7 +31,7 @@
 class Packet;
 class Arp;
 
-class IArpPrivate : public NsUnknown
+class IArpPrivate : public Interface
 {
 public:
   static const Iid iid;
--- a/src/internet-node/i-ipv4-private.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/i-ipv4-private.cc	Fri May 11 18:52:05 2007 +0200
@@ -28,7 +28,7 @@
 const Iid IIpv4Private::iid ("IIpv4Private");
 
 IIpv4Private::IIpv4Private (Ptr<Ipv4> ipv4)
-  : NsUnknown (IIpv4Private::iid),
+  : Interface (IIpv4Private::iid),
     m_ipv4 (ipv4)
 {}
 IIpv4Private::~IIpv4Private ()
@@ -60,7 +60,7 @@
 IIpv4Private::DoDispose (void)
 {
   m_ipv4 = 0;
-  NsUnknown::DoDispose ();
+  Interface::DoDispose ();
 }
 
 } // namespace ns3
--- a/src/internet-node/i-ipv4-private.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/i-ipv4-private.h	Fri May 11 18:52:05 2007 +0200
@@ -35,7 +35,7 @@
 class Ipv4Interface;
 class NetDevice;
 
-class IIpv4Private : public NsUnknown
+class IIpv4Private : public Interface
 {
 public:
   static const Iid iid;
--- a/src/internet-node/internet-node.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/internet-node.cc	Fri May 11 18:52:05 2007 +0200
@@ -58,13 +58,13 @@
   Ptr<IIpv4Impl> ipv4Impl = MakeNewObject<IIpv4Impl> (ipv4);
   Ptr<IIpv4Private> ipv4Private = MakeNewObject<IIpv4Private> (ipv4);
 
-  NsUnknown::AddInterface (ipv4Private);
-  NsUnknown::AddInterface (ipv4Impl);
-  NsUnknown::AddInterface (arpPrivate);
-  NsUnknown::AddInterface (udpImpl);
-  NsUnknown::AddInterface (applicationList);
-  NsUnknown::AddInterface (l3Demux);
-  NsUnknown::AddInterface (ipv4L4Demux);
+  Interface::AddInterface (ipv4Private);
+  Interface::AddInterface (ipv4Impl);
+  Interface::AddInterface (arpPrivate);
+  Interface::AddInterface (udpImpl);
+  Interface::AddInterface (applicationList);
+  Interface::AddInterface (l3Demux);
+  Interface::AddInterface (ipv4L4Demux);
 }
 
 InternetNode::~InternetNode ()
--- a/src/internet-node/ipv4-l4-demux.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/ipv4-l4-demux.cc	Fri May 11 18:52:05 2007 +0200
@@ -33,7 +33,7 @@
 const Iid Ipv4L4Demux::iid ("Ipv4L4Demux");
 
 Ipv4L4Demux::Ipv4L4Demux (Ptr<Node> node)
-  : NsUnknown (Ipv4L4Demux::iid),
+  : Interface (Ipv4L4Demux::iid),
     m_node (node)
 {}
 
@@ -50,7 +50,7 @@
     }
   m_protocols.clear ();
   m_node = 0;
-  NsUnknown::DoDispose ();
+  Interface::DoDispose ();
 }
 
 TraceResolver *
--- a/src/internet-node/ipv4-l4-demux.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/ipv4-l4-demux.h	Fri May 11 18:52:05 2007 +0200
@@ -39,7 +39,7 @@
 /**
  * \brief L4 Ipv4 Demux
  */
-class Ipv4L4Demux : public NsUnknown
+class Ipv4L4Demux : public Interface
 {
 public:
   static const Iid iid;
--- a/src/internet-node/l3-demux.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/l3-demux.cc	Fri May 11 18:52:05 2007 +0200
@@ -32,7 +32,7 @@
 const Iid L3Demux::iid ("L3Demux");
 
 L3Demux::L3Demux (Ptr<Node> node)
-  : NsUnknown (L3Demux::iid),
+  : Interface (L3Demux::iid),
     m_node (node)
 {}
 
@@ -49,7 +49,7 @@
     }
   m_protocols.clear ();
   m_node = 0;
-  NsUnknown::DoDispose ();
+  Interface::DoDispose ();
 }
 
 TraceResolver *
--- a/src/internet-node/l3-demux.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/internet-node/l3-demux.h	Fri May 11 18:52:05 2007 +0200
@@ -41,7 +41,7 @@
 /**
  * \brief L3 Demux 
  */
-class L3Demux : public NsUnknown
+class L3Demux : public Interface
 {
 public:
   static const Iid iid;
--- a/src/node/i-ipv4.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/node/i-ipv4.cc	Fri May 11 18:52:05 2007 +0200
@@ -25,7 +25,7 @@
 const Iid IIpv4::iid ("IIpv4");
 
 IIpv4::IIpv4 ()
-  : NsUnknown (IIpv4::iid)
+  : Interface (IIpv4::iid)
 {}
 
 IIpv4::~IIpv4 ()
--- a/src/node/i-ipv4.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/node/i-ipv4.h	Fri May 11 18:52:05 2007 +0200
@@ -31,7 +31,7 @@
 class Packet;
 class Ipv4Route;
 
-class IIpv4 : public NsUnknown
+class IIpv4 : public Interface
 {
 public:
   static const Iid iid;
--- a/src/node/i-udp.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/node/i-udp.cc	Fri May 11 18:52:05 2007 +0200
@@ -25,7 +25,7 @@
 const Iid IUdp::iid ("IUdp");
 
 IUdp::IUdp ()
-  : NsUnknown (IUdp::iid)
+  : Interface (IUdp::iid)
 {}
 
 } // namespace ns3
--- a/src/node/i-udp.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/node/i-udp.h	Fri May 11 18:52:05 2007 +0200
@@ -28,7 +28,7 @@
 
 class Socket;
 
-class IUdp : public NsUnknown
+class IUdp : public Interface
 {
 public:
   static const Iid iid;
--- a/src/node/node.cc	Fri May 11 18:42:39 2007 +0200
+++ b/src/node/node.cc	Fri May 11 18:52:05 2007 +0200
@@ -32,7 +32,7 @@
 const Iid Node::iid ("Node");
 
 Node::Node()
-  : NsUnknown (Node::iid),
+  : Interface (Node::iid),
     m_id(0), 
     m_sid(0)
 {
@@ -40,7 +40,7 @@
 }
 
 Node::Node(uint32_t sid)
-  : NsUnknown (Node::iid),
+  : Interface (Node::iid),
     m_id(0), 
     m_sid(sid)
 { 
@@ -98,7 +98,7 @@
       *i = 0;
     }
   m_devices.clear ();
-  NsUnknown::DoDispose ();
+  Interface::DoDispose ();
 }
 
 }//namespace ns3
--- a/src/node/node.h	Fri May 11 18:42:39 2007 +0200
+++ b/src/node/node.h	Fri May 11 18:52:05 2007 +0200
@@ -35,7 +35,7 @@
 class TraceResolver;
 class NetDevice;
 
-class Node : public NsUnknown
+class Node : public Interface
 {
 public:
   static const Iid iid;