From 1a7e6629fbf0253e522a0716bc6df5756acbe29f Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Fri, 25 May 2007 18:22:22 +0200 Subject: [PATCH] more tests --- src/core/component-manager.cc | 22 ++++++++++++++++++++++ src/core/component-manager.h | 19 ++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/core/component-manager.cc b/src/core/component-manager.cc index 473f81a56..e79521493 100644 --- a/src/core/component-manager.cc +++ b/src/core/component-manager.cc @@ -304,6 +304,28 @@ A::A (uint32_t i) AddInterface (b); } +class X : public A +{ +public: + static const ns3::InterfaceId iid; +}; +class C : public X +{ +public: + static const ns3::InterfaceId iid; +}; +class D : public C +{ +public: + static const ns3::InterfaceId iid; + static const ns3::ClassId cid; +}; + +const ns3::InterfaceId X::iid = ns3::MakeInterfaceId ("X", A::iid); +const ns3::InterfaceId C::iid = ns3::MakeInterfaceId ("C", X::iid); +const ns3::InterfaceId D::iid = ns3::MakeInterfaceId ("D", C::iid); +const ns3::ClassId D::cid = ns3::MakeClassId ("D", A::iid, X::iid, C::iid, D::iid); + } namespace ns3 { diff --git a/src/core/component-manager.h b/src/core/component-manager.h index 737e6078d..5476a9bda 100644 --- a/src/core/component-manager.h +++ b/src/core/component-manager.h @@ -263,7 +263,24 @@ public: const InterfaceId &iid0, const InterfaceId &iid1, const InterfaceId &iid2) : ClassId (name) { - const InterfaceId *array[] = {&iid0, &iid1, iid2}; + const InterfaceId *array[] = {&iid0, &iid1, &iid2}; + Register (array, sizeof (array)/sizeof(InterfaceId)); + } + MakeClassId (std::string name, + const InterfaceId &iid0, + const InterfaceId &iid1, + const InterfaceId &iid2, + const InterfaceId &iid3) : ClassId (name) { + const InterfaceId *array[] = {&iid0, &iid1, &iid2, &iid3}; + Register (array, sizeof (array)/sizeof(InterfaceId)); + } + MakeClassId (std::string name, + const InterfaceId &iid0, + const InterfaceId &iid1, + const InterfaceId &iid2, + const InterfaceId &iid3, + const InterfaceId &iid4) : ClassId (name) { + const InterfaceId *array[] = {&iid0, &iid1, iid2, &iid3, &iid4}; Register (array, sizeof (array)/sizeof(InterfaceId)); } };