samples/main-component-manager.cc
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--
api doxygen for Object base class
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
}