author | Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
Wed, 02 Jan 2008 09:09:24 +0100 | |
changeset 2230 | 9f13ac3291e0 |
parent 732 | df256f32b6ae |
permissions | -rw-r--r-- |
700
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
1 |
#include <vector> |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
#include <stdlib.h> |
706
8b0bf4623c9d
rename InterfaceObject to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
700
diff
changeset
|
3 |
#include "ns3/object.h" |
700
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
|
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
using namespace ns3; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
|
706
8b0bf4623c9d
rename InterfaceObject to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
700
diff
changeset
|
7 |
class BaseA : public ns3::Object |
700
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
{ |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
public: |
710
2a9c061219a7
port code from Interface to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
706
diff
changeset
|
10 |
static const ns3::InterfaceId iid; |
700
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
BaseA () |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
{ |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
SetInterfaceId (BaseA::iid); |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
} |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
virtual void Dispose (void) {} |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
}; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
|
710
2a9c061219a7
port code from Interface to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
706
diff
changeset
|
18 |
const ns3::InterfaceId BaseA::iid = |
706
8b0bf4623c9d
rename InterfaceObject to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
700
diff
changeset
|
19 |
ns3::MakeInterfaceId ("BaseABench", Object::iid); |
700
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
20 |
|
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
21 |
|
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
22 |
|
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
int main (int argc, char *argv[]) |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
24 |
{ |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
25 |
int nobjects = atoi (argv[1]); |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
26 |
int nswaps = atoi (argv[2]); |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
27 |
|
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
28 |
std::vector< Ptr<BaseA> > objlist; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
29 |
|
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
for (int i = 0; i < nobjects; ++i) |
2230
9f13ac3291e0
add CreateObject<> to instanciate subclasses of the Object base class. Replaces Create<>.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
732
diff
changeset
|
31 |
objlist.push_back (CreateObject<BaseA> ()); |
700
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
32 |
|
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
33 |
for (int swapCounter = nswaps; swapCounter; --swapCounter) |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
34 |
{ |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
35 |
int x1 = swapCounter % nobjects; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
36 |
int x2 = (swapCounter+1) % nobjects; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
37 |
Ptr<BaseA> obj1 = objlist[x1]; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
38 |
Ptr<BaseA> obj2 = objlist[x2]; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
39 |
objlist[x2] = obj1; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
40 |
objlist[x1] = obj2; |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
41 |
} |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
42 |
} |
d845cfea2a16
add benchmark by gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
43 |