author | Tom Henderson <tomh@tomh.org> |
Fri, 18 Feb 2011 16:05:39 -0800 | |
changeset 6821 | 203367ae7433 |
parent 6180 | src/simulator/make-event.cc@cd0d8ba00e6c |
child 9134 | 7a750f032acd |
permissions | -rw-r--r-- |
3809
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
1 |
#include "make-event.h" |
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
|
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
namespace ns3 { |
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
|
6180
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
5 |
EventImpl * MakeEvent (void (*f)(void)) |
3809
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
{ |
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
7 |
// zero arg version |
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
class EventFunctionImpl0 : public EventImpl |
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
{ |
6180
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
10 |
public: |
3809
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
typedef void (*F)(void); |
6180
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
12 |
|
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
13 |
EventFunctionImpl0 (F function) |
3809
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
: m_function (function) |
6180
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
15 |
{ |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
16 |
} |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
17 |
virtual ~EventFunctionImpl0 () |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
18 |
{ |
3809
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
19 |
} |
6180
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
20 |
protected: |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
21 |
virtual void Notify (void) |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
22 |
{ |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
23 |
(*m_function)(); |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
24 |
} |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
25 |
private: |
cd0d8ba00e6c
coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3809
diff
changeset
|
26 |
F m_function; |
3809
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
27 |
} *ev = new EventFunctionImpl0 (f); |
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
28 |
return ev; |
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
29 |
} |
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
|
5e007004402e
move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
31 |
} // namespace ns3 |