author | Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
Tue, 28 Aug 2007 13:14:43 +0200 | |
changeset 1380 | 799617173a45 |
parent 727 | 3bcec84f9f54 |
child 2230 | 9f13ac3291e0 |
permissions | -rw-r--r-- |
727
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
1 |
#include "ns3/object.h" |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
#include "ns3/component-manager.h" |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
|
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
using namespace ns3; |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
|
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
class AnObject : public Object |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
7 |
{ |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
public: |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
static const InterfaceId iid; |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
10 |
static const ClassId cid; |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
AnObject (int a, double b); |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
protected: |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
virtual void DoDispose (void); |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
}; |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
|
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
const InterfaceId AnObject::iid = MakeInterfaceId ("AnObject", Object::iid); |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
const ClassId AnObject::cid = MakeClassId<AnObject, int, double> ("AnObject", AnObject::iid); |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
18 |
|
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
19 |
AnObject::AnObject (int a, double b) |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
20 |
{ |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
21 |
// enable our interface |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
22 |
SetInterfaceId (AnObject::iid); |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
} |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
24 |
void |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
25 |
AnObject::DoDispose (void) |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
26 |
{ |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
27 |
// Do your work here. |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
28 |
// chain up |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
29 |
Object::DoDispose (); |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
} |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
31 |
|
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
32 |
|
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
33 |
int main (int argc, char *argv[]) |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
34 |
{ |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
35 |
Ptr<AnObject> anObject = ComponentManager::Create<AnObject,int,double> (AnObject::cid, AnObject::iid, 10, 20.0); |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
36 |
NS_ASSERT (anObject != 0); |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
37 |
return 0; |
3bcec84f9f54
sample code for component manager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
38 |
} |