author | Gustavo J. A. M. Carneiro <gjc@inescporto.pt> |
Thu, 12 Jul 2007 12:41:37 +0100 | |
changeset 927 | b5bc396a29b0 |
parent 692 | 3f03c8c4f381 |
child 945 | 6b8efd6b621a |
permissions | -rw-r--r-- |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
1 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
/* |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
* Copyright (c) 2005,2006 INRIA |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
* All rights reserved. |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
* |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
* This program is free software; you can redistribute it and/or modify |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
7 |
* it under the terms of the GNU General Public License version 2 as |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
* published by the Free Software Foundation; |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
* |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
10 |
* This program is distributed in the hope that it will be useful, |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
* GNU General Public License for more details. |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
* |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
* along with this program; if not, write to the Free Software |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
18 |
* |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
19 |
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
20 |
*/ |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
21 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
22 |
#include "simulator.h" |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
#include "scheduler.h" |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
24 |
#include "event-impl.h" |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
25 |
|
439
fed13fb45eef
Incorporated defaults and command-line arguments
Raj Bhattacharjea <raj.b@gatech.edu>
parents:
336
diff
changeset
|
26 |
#include "ns3/assert.h" |
fed13fb45eef
Incorporated defaults and command-line arguments
Raj Bhattacharjea <raj.b@gatech.edu>
parents:
336
diff
changeset
|
27 |
#include "ns3/default-value.h" |
fed13fb45eef
Incorporated defaults and command-line arguments
Raj Bhattacharjea <raj.b@gatech.edu>
parents:
336
diff
changeset
|
28 |
|
fed13fb45eef
Incorporated defaults and command-line arguments
Raj Bhattacharjea <raj.b@gatech.edu>
parents:
336
diff
changeset
|
29 |
|
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
#include <math.h> |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
31 |
#include <fstream> |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
32 |
#include <list> |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
33 |
#include <vector> |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
34 |
#include <iostream> |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
35 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
36 |
#define noTRACE_SIMU 1 |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
37 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
38 |
#ifdef TRACE_SIMU |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
39 |
#include <iostream> |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
40 |
# define TRACE(x) \ |
213
1e6d6776b284
fix trace output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
209
diff
changeset
|
41 |
std::cout << "SIMU TRACE " << Simulator::Now () << " " << x << std::endl; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
42 |
# define TRACE_S(x) \ |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
43 |
std::cout << "SIMU TRACE " << x << std::endl; |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
44 |
#else /* TRACE_SIMU */ |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
45 |
# define TRACE(format,...) |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
46 |
# define TRACE_S(format,...) |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
47 |
#endif /* TRACE_SIMU */ |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
48 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
49 |
|
16
99e833adbb46
change yans namespace to ns3
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
14
diff
changeset
|
50 |
namespace ns3 { |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
51 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
52 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
53 |
class SimulatorPrivate { |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
54 |
public: |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
55 |
SimulatorPrivate (Scheduler *events); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
56 |
~SimulatorPrivate (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
57 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
58 |
void EnableLogTo (char const *filename); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
59 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
60 |
bool IsFinished (void) const; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
61 |
Time Next (void) const; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
62 |
void Stop (void); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
63 |
void StopAt (Time const &time); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
64 |
EventId Schedule (Time const &time, EventImpl *event); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
65 |
void ScheduleNow (EventImpl *event); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
66 |
void ScheduleDestroy (EventImpl *event); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
67 |
void Remove (EventId ev); |
472
41aa5fca4f49
make sure that Simulator::Cancel deals correctly with events which were already scheduled
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
336
diff
changeset
|
68 |
void Cancel (EventId &ev); |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
69 |
bool IsExpired (EventId ev); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
70 |
void Run (void); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
71 |
Time Now (void) const; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
72 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
73 |
private: |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
74 |
void ProcessOneEvent (void); |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
75 |
uint64_t NextTs (void) const; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
76 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
77 |
typedef std::list<std::pair<EventImpl *,uint32_t> > Events; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
78 |
Events m_destroy; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
79 |
uint64_t m_stopAt; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
80 |
bool m_stop; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
81 |
Scheduler *m_events; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
82 |
uint32_t m_uid; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
83 |
uint32_t m_currentUid; |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
84 |
uint64_t m_currentTs; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
85 |
std::ofstream m_log; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
86 |
std::ifstream m_inputLog; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
87 |
bool m_logEnable; |
336
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
88 |
// number of events that have been inserted but not yet scheduled, |
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
89 |
// not counting the "destroy" events; this is used for validation |
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
90 |
int m_unscheduledEvents; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
91 |
}; |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
92 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
93 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
94 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
95 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
96 |
SimulatorPrivate::SimulatorPrivate (Scheduler *events) |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
97 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
98 |
m_stop = false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
99 |
m_stopAt = 0; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
100 |
m_events = events; |
200
46031a283b0d
We need to make sure that the uid of the first event generated is different from the uid of the simulator when no events have yet been run.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
198
diff
changeset
|
101 |
// uids are allocated from 1. |
46031a283b0d
We need to make sure that the uid of the first event generated is different from the uid of the simulator when no events have yet been run.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
198
diff
changeset
|
102 |
m_uid = 1; |
46031a283b0d
We need to make sure that the uid of the first event generated is different from the uid of the simulator when no events have yet been run.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
198
diff
changeset
|
103 |
// before ::Run is entered, the m_currentUid will be zero |
46031a283b0d
We need to make sure that the uid of the first event generated is different from the uid of the simulator when no events have yet been run.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
198
diff
changeset
|
104 |
m_currentUid = 0; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
105 |
m_logEnable = false; |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
106 |
m_currentTs = 0; |
336
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
107 |
m_unscheduledEvents = 0; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
108 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
109 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
110 |
SimulatorPrivate::~SimulatorPrivate () |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
111 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
112 |
while (!m_destroy.empty ()) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
113 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
114 |
EventImpl *ev = m_destroy.front ().first; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
115 |
m_destroy.pop_front (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
116 |
TRACE ("handle destroy " << ev); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
117 |
ev->Invoke (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
118 |
delete ev; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
119 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
120 |
delete m_events; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
121 |
m_events = (Scheduler *)0xdeadbeaf; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
122 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
123 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
124 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
125 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
126 |
SimulatorPrivate::EnableLogTo (char const *filename) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
127 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
128 |
m_log.open (filename); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
129 |
m_logEnable = true; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
130 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
131 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
132 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
133 |
SimulatorPrivate::ProcessOneEvent (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
134 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
135 |
EventImpl *nextEv = m_events->PeekNext (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
136 |
Scheduler::EventKey nextKey = m_events->PeekNextKey (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
137 |
m_events->RemoveNext (); |
336
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
138 |
|
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
139 |
NS_ASSERT (nextKey.m_ts >= m_currentTs); |
336
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
140 |
--m_unscheduledEvents; |
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
141 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
142 |
TRACE ("handle " << nextEv); |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
143 |
m_currentTs = nextKey.m_ts; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
144 |
m_currentUid = nextKey.m_uid; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
145 |
if (m_logEnable) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
146 |
{ |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
147 |
m_log << "e "<<nextKey.m_uid << " " << nextKey.m_ts << std::endl; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
148 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
149 |
nextEv->Invoke (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
150 |
delete nextEv; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
151 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
152 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
153 |
bool |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
154 |
SimulatorPrivate::IsFinished (void) const |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
155 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
156 |
return m_events->IsEmpty (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
157 |
} |
143
552ff26b4224
new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
129
diff
changeset
|
158 |
uint64_t |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
159 |
SimulatorPrivate::NextTs (void) const |
143
552ff26b4224
new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
129
diff
changeset
|
160 |
{ |
286
57e6a2006962
convert use of <cassert> to "ns3/assert.h"
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
213
diff
changeset
|
161 |
NS_ASSERT (!m_events->IsEmpty ()); |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
162 |
Scheduler::EventKey nextKey = m_events->PeekNextKey (); |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
163 |
return nextKey.m_ts; |
143
552ff26b4224
new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
129
diff
changeset
|
164 |
} |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
165 |
Time |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
166 |
SimulatorPrivate::Next (void) const |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
167 |
{ |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
168 |
return TimeStep (NextTs ()); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
169 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
170 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
171 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
172 |
SimulatorPrivate::Run (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
173 |
{ |
143
552ff26b4224
new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
129
diff
changeset
|
174 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
175 |
while (!m_events->IsEmpty () && !m_stop && |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
176 |
(m_stopAt == 0 || m_stopAt > NextTs ())) |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
177 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
178 |
ProcessOneEvent (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
179 |
} |
336
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
180 |
|
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
181 |
// If the simulator stopped naturally by lack of events, make a |
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
182 |
// consistency test to check that we didn't lose any events along the way. |
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
183 |
NS_ASSERT(!m_events->IsEmpty () || m_unscheduledEvents == 0); |
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
184 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
185 |
m_log.close (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
186 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
187 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
188 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
189 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
190 |
SimulatorPrivate::Stop (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
191 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
192 |
m_stop = true; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
193 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
194 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
195 |
SimulatorPrivate::StopAt (Time const &at) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
196 |
{ |
286
57e6a2006962
convert use of <cassert> to "ns3/assert.h"
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
213
diff
changeset
|
197 |
NS_ASSERT (at.IsPositive ()); |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
198 |
m_stopAt = at.GetTimeStep (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
199 |
} |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
200 |
EventId |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
201 |
SimulatorPrivate::Schedule (Time const &time, EventImpl *event) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
202 |
{ |
286
57e6a2006962
convert use of <cassert> to "ns3/assert.h"
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
213
diff
changeset
|
203 |
NS_ASSERT (time.IsPositive ()); |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
204 |
NS_ASSERT (time >= TimeStep (m_currentTs)); |
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
205 |
uint64_t ts = (uint64_t) time.GetTimeStep (); |
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
206 |
Scheduler::EventKey key = {ts, m_uid}; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
207 |
if (m_logEnable) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
208 |
{ |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
209 |
m_log << "i "<<m_currentUid<<" "<<m_currentTs<<" " |
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
210 |
<<m_uid<<" "<<time.GetTimeStep () << std::endl; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
211 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
212 |
m_uid++; |
336
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
213 |
++m_unscheduledEvents; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
214 |
return m_events->Insert (event, key); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
215 |
} |
145
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
216 |
void |
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
217 |
SimulatorPrivate::ScheduleNow (EventImpl *event) |
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
218 |
{ |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
219 |
uint64_t ts = m_currentTs; |
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
220 |
Scheduler::EventKey key = {ts, m_uid}; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
221 |
if (m_logEnable) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
222 |
{ |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
223 |
m_log << "i "<<m_currentUid<<" "<<m_currentTs<<" " |
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
224 |
<<m_uid<<" "<<ts << std::endl; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
225 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
226 |
m_uid++; |
336
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
227 |
++m_unscheduledEvents; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
228 |
m_events->Insert (event, key); |
145
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
229 |
} |
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
230 |
void |
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
231 |
SimulatorPrivate::ScheduleDestroy (EventImpl *event) |
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
232 |
{ |
147
705658c244c3
implement ScheduleNow and ScheduleDestroy methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
146
diff
changeset
|
233 |
m_destroy.push_back (std::make_pair (event, m_uid)); |
705658c244c3
implement ScheduleNow and ScheduleDestroy methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
146
diff
changeset
|
234 |
if (m_logEnable) |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
235 |
{ |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
236 |
m_log << "id " << m_currentUid << " " << Now ().GetTimeStep () << " " |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
237 |
<< m_uid << std::endl; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
238 |
} |
147
705658c244c3
implement ScheduleNow and ScheduleDestroy methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
146
diff
changeset
|
239 |
m_uid++; |
145
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
240 |
} |
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
241 |
|
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
242 |
Time |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
243 |
SimulatorPrivate::Now (void) const |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
244 |
{ |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
245 |
return TimeStep (m_currentTs); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
246 |
} |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
247 |
|
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
248 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
249 |
SimulatorPrivate::Remove (EventId ev) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
250 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
251 |
Scheduler::EventKey key; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
252 |
EventImpl *impl = m_events->Remove (ev, &key); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
253 |
delete impl; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
254 |
if (m_logEnable) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
255 |
{ |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
256 |
m_log << "r " << m_currentUid << " " << m_currentTs << " " |
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
257 |
<< key.m_uid << " " << key.m_ts << std::endl; |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
258 |
} |
336
9dd9a53188bc
add consistency checks. Based on patch by Gustavo Carneiro
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
286
diff
changeset
|
259 |
--m_unscheduledEvents; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
260 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
261 |
|
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
262 |
void |
472
41aa5fca4f49
make sure that Simulator::Cancel deals correctly with events which were already scheduled
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
336
diff
changeset
|
263 |
SimulatorPrivate::Cancel (EventId &id) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
264 |
{ |
472
41aa5fca4f49
make sure that Simulator::Cancel deals correctly with events which were already scheduled
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
336
diff
changeset
|
265 |
id.Cancel (); |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
266 |
} |
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
267 |
|
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
268 |
bool |
927
b5bc396a29b0
Make Simulator::IsExpired parameter const, to reflect the fact that the EventId is not changed. EventId::IsExpired and EventId::IsRunning also made const.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
692
diff
changeset
|
269 |
SimulatorPrivate::IsExpired (const EventId ev) |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
270 |
{ |
209
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
271 |
if (ev.GetEventImpl () == 0 || |
675
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
272 |
ev.GetTs () < m_currentTs || |
a5878de7d71c
The header file ns3/cairo-wideint-private.h was added since the type int32_t was used.
Emmanuelle Laprise
parents:
523
diff
changeset
|
273 |
(ev.GetTs () == m_currentTs && |
209
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
274 |
ev.GetUid () <= m_currentUid) || |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
275 |
ev.GetEventImpl ()->IsCancelled ()) |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
276 |
{ |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
277 |
return true; |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
278 |
} |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
279 |
else |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
280 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
281 |
return false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
282 |
} |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
283 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
284 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
285 |
|
16
99e833adbb46
change yans namespace to ns3
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
14
diff
changeset
|
286 |
}; // namespace ns3 |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
287 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
288 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
289 |
#include "scheduler-list.h" |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
290 |
#include "scheduler-heap.h" |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
291 |
#include "scheduler-map.h" |
45
f963078c6e95
enable user-provided schedulers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
38
diff
changeset
|
292 |
#include "scheduler-factory.h" |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
293 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
294 |
|
16
99e833adbb46
change yans namespace to ns3
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
14
diff
changeset
|
295 |
namespace ns3 { |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
296 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
297 |
SimulatorPrivate *Simulator::m_priv = 0; |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
298 |
|
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
299 |
void Simulator::SetLinkedList (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
300 |
{ |
692
3f03c8c4f381
uniformize the DefaultValues used by the Event Schedulers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
690
diff
changeset
|
301 |
Bind ("Scheduler", "List"); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
302 |
} |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
303 |
void Simulator::SetBinaryHeap (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
304 |
{ |
692
3f03c8c4f381
uniformize the DefaultValues used by the Event Schedulers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
690
diff
changeset
|
305 |
Bind ("Scheduler", "BinaryHeap"); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
306 |
} |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
307 |
void Simulator::SetStdMap (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
308 |
{ |
692
3f03c8c4f381
uniformize the DefaultValues used by the Event Schedulers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
690
diff
changeset
|
309 |
Bind ("Scheduler", "Map"); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
310 |
} |
45
f963078c6e95
enable user-provided schedulers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
38
diff
changeset
|
311 |
void |
439
fed13fb45eef
Incorporated defaults and command-line arguments
Raj Bhattacharjea <raj.b@gatech.edu>
parents:
336
diff
changeset
|
312 |
Simulator::SetExternal (const std::string &external) |
45
f963078c6e95
enable user-provided schedulers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
38
diff
changeset
|
313 |
{ |
692
3f03c8c4f381
uniformize the DefaultValues used by the Event Schedulers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
690
diff
changeset
|
314 |
Bind ("Scheduler", external); |
45
f963078c6e95
enable user-provided schedulers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
38
diff
changeset
|
315 |
} |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
316 |
void Simulator::EnableLogTo (char const *filename) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
317 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
318 |
GetPriv ()->EnableLogTo (filename); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
319 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
320 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
321 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
322 |
SimulatorPrivate * |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
323 |
Simulator::GetPriv (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
324 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
325 |
if (m_priv == 0) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
326 |
{ |
439
fed13fb45eef
Incorporated defaults and command-line arguments
Raj Bhattacharjea <raj.b@gatech.edu>
parents:
336
diff
changeset
|
327 |
Scheduler *events = SchedulerFactory::CreateDefault (); |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
328 |
m_priv = new SimulatorPrivate (events); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
329 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
330 |
TRACE_S ("priv " << m_priv); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
331 |
return m_priv; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
332 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
333 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
334 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
335 |
Simulator::Destroy (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
336 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
337 |
delete m_priv; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
338 |
m_priv = 0; |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
339 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
340 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
341 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
342 |
bool |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
343 |
Simulator::IsFinished (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
344 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
345 |
return GetPriv ()->IsFinished (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
346 |
} |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
347 |
Time |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
348 |
Simulator::Next (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
349 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
350 |
return GetPriv ()->Next (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
351 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
352 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
353 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
354 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
355 |
Simulator::Run (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
356 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
357 |
GetPriv ()->Run (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
358 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
359 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
360 |
Simulator::Stop (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
361 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
362 |
TRACE ("stop"); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
363 |
GetPriv ()->Stop (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
364 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
365 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
366 |
Simulator::StopAt (Time const &at) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
367 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
368 |
GetPriv ()->StopAt (at); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
369 |
} |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
370 |
Time |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
371 |
Simulator::Now (void) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
372 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
373 |
return GetPriv ()->Now (); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
374 |
} |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
375 |
|
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
376 |
EventImpl * |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
377 |
Simulator::MakeEvent (void (*f) (void)) |
145
947b77174b72
start of work to re-implement Schedule* methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
144
diff
changeset
|
378 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
379 |
// zero arg version |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
380 |
class EventFunctionImpl0 : public EventImpl { |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
381 |
public: |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
382 |
typedef void (*F)(void); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
383 |
|
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
384 |
EventFunctionImpl0 (F function) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
385 |
: m_function (function) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
386 |
{} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
387 |
virtual ~EventFunctionImpl0 () {} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
388 |
protected: |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
389 |
virtual void Notify (void) { |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
390 |
(*m_function) (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
391 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
392 |
private: |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
393 |
F m_function; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
394 |
} *ev = new EventFunctionImpl0 (f); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
395 |
return ev; |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
396 |
} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
397 |
EventId |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
398 |
Simulator::Schedule (Time const &time, EventImpl *ev) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
399 |
{ |
162
5b398ac221c7
make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
150
diff
changeset
|
400 |
return GetPriv ()->Schedule (Now () + time, ev); |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
401 |
} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
402 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
403 |
Simulator::ScheduleNow (EventImpl *ev) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
404 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
405 |
GetPriv ()->ScheduleNow (ev); |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
406 |
} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
407 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
408 |
Simulator::ScheduleDestroy (EventImpl *ev) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
409 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
410 |
GetPriv ()->ScheduleDestroy (ev); |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
411 |
} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
412 |
EventId |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
413 |
Simulator::Schedule (Time const &time, void (*f) (void)) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
414 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
415 |
return Schedule (time, MakeEvent (f)); |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
416 |
} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
417 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
418 |
Simulator::ScheduleNow (void (*f) (void)) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
419 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
420 |
return ScheduleNow (MakeEvent (f)); |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
421 |
} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
422 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
423 |
Simulator::ScheduleDestroy (void (*f) (void)) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
424 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
425 |
return ScheduleDestroy (MakeEvent (f)); |
75
0f3f4b0a158b
reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
54
diff
changeset
|
426 |
} |
0f3f4b0a158b
reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
54
diff
changeset
|
427 |
|
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
428 |
|
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
429 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
430 |
Simulator::Remove (EventId ev) |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
431 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
432 |
return GetPriv ()->Remove (ev); |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
433 |
} |
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
434 |
|
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
435 |
void |
472
41aa5fca4f49
make sure that Simulator::Cancel deals correctly with events which were already scheduled
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
336
diff
changeset
|
436 |
Simulator::Cancel (EventId &ev) |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
437 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
438 |
return GetPriv ()->Cancel (ev); |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
439 |
} |
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
440 |
bool |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
441 |
Simulator::IsExpired (EventId id) |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
442 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
443 |
return GetPriv ()->IsExpired (id); |
25
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
444 |
} |
9b3bb088c560
first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
24
diff
changeset
|
445 |
|
679
0c4773ca0f29
avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
675
diff
changeset
|
446 |
Time Now (void) |
0c4773ca0f29
avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
675
diff
changeset
|
447 |
{ |
0c4773ca0f29
avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
675
diff
changeset
|
448 |
return Time (Simulator::Now ()); |
0c4773ca0f29
avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
675
diff
changeset
|
449 |
} |
0c4773ca0f29
avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
675
diff
changeset
|
450 |
|
16
99e833adbb46
change yans namespace to ns3
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
14
diff
changeset
|
451 |
}; // namespace ns3 |
9
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
452 |
|
2c31ae7c94db
import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
453 |
|
30
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
454 |
#ifdef RUN_SELF_TESTS |
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
455 |
|
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
456 |
#include "ns3/test.h" |
690 | 457 |
#include "ns3/ptr.h" |
30
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
458 |
|
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
459 |
namespace ns3 { |
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
460 |
|
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
461 |
static void foo0 (void) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
462 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
463 |
static void foo1 (int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
464 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
465 |
static void foo2 (int, int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
466 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
467 |
static void foo3 (int, int, int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
468 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
469 |
static void foo4 (int, int, int, int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
470 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
471 |
static void foo5 (int, int, int, int, int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
472 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
473 |
|
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
474 |
|
30
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
475 |
class SimulatorTests : public Test { |
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
476 |
public: |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
477 |
SimulatorTests (); |
690 | 478 |
// only here for testing of Ptr<> |
479 |
void Ref (void); |
|
480 |
void Unref (void); |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
481 |
virtual ~SimulatorTests (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
482 |
virtual bool RunTests (void); |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
483 |
private: |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
484 |
uint64_t NowUs (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
485 |
bool RunOneTest (void); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
486 |
void A (int a); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
487 |
void B (int b); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
488 |
void C (int c); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
489 |
void D (int d); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
490 |
void bar0 (void); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
491 |
void bar1 (int); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
492 |
void bar2 (int, int); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
493 |
void bar3 (int, int, int); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
494 |
void bar4 (int, int, int, int); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
495 |
void bar5 (int, int, int, int, int); |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
496 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
497 |
bool m_b; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
498 |
bool m_a; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
499 |
bool m_c; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
500 |
bool m_d; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
501 |
EventId m_idC; |
30
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
502 |
}; |
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
503 |
|
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
504 |
SimulatorTests::SimulatorTests () |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
505 |
: Test ("Simulator") |
30
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
506 |
{} |
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
507 |
SimulatorTests::~SimulatorTests () |
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
508 |
{} |
690 | 509 |
void |
510 |
SimulatorTests::Ref (void) |
|
511 |
{} |
|
512 |
void |
|
513 |
SimulatorTests::Unref (void) |
|
514 |
{} |
|
143
552ff26b4224
new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
129
diff
changeset
|
515 |
uint64_t |
552ff26b4224
new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
129
diff
changeset
|
516 |
SimulatorTests::NowUs (void) |
552ff26b4224
new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
129
diff
changeset
|
517 |
{ |
163
2a7e05018eeb
rename Time::ApproximateTo methods to Time::Get
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
162
diff
changeset
|
518 |
uint64_t ns = Now ().GetNanoSeconds (); |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
519 |
return ns / 1000; |
143
552ff26b4224
new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
129
diff
changeset
|
520 |
} |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
521 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
522 |
SimulatorTests::A (int a) |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
523 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
524 |
m_a = false; |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
525 |
} |
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
526 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
527 |
SimulatorTests::B (int b) |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
528 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
529 |
if (b != 2 || NowUs () != 11) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
530 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
531 |
m_b = false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
532 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
533 |
else |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
534 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
535 |
m_b = true; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
536 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
537 |
Simulator::Remove (m_idC); |
162
5b398ac221c7
make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
150
diff
changeset
|
538 |
Simulator::Schedule (MicroSeconds (10), &SimulatorTests::D, this, 4); |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
539 |
} |
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
540 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
541 |
SimulatorTests::C (int c) |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
542 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
543 |
m_c = false; |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
544 |
} |
32 | 545 |
void |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
546 |
SimulatorTests::D (int d) |
32 | 547 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
548 |
if (d != 4 || NowUs () != (11+10)) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
549 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
550 |
m_d = false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
551 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
552 |
else |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
553 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
554 |
m_d = true; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
555 |
} |
32 | 556 |
} |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
557 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
558 |
SimulatorTests::bar0 (void) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
559 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
560 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
561 |
SimulatorTests::bar1 (int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
562 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
563 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
564 |
SimulatorTests::bar2 (int, int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
565 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
566 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
567 |
SimulatorTests::bar3 (int, int, int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
568 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
569 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
570 |
SimulatorTests::bar4 (int, int, int, int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
571 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
572 |
void |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
573 |
SimulatorTests::bar5 (int, int, int, int, int) |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
574 |
{} |
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
575 |
|
114
fe0504af6d16
test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
111
diff
changeset
|
576 |
bool |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
577 |
SimulatorTests::RunOneTest (void) |
30
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
578 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
579 |
bool ok = true; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
580 |
m_a = true; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
581 |
m_b = false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
582 |
m_c = true; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
583 |
m_d = false; |
114
fe0504af6d16
test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
111
diff
changeset
|
584 |
|
162
5b398ac221c7
make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
150
diff
changeset
|
585 |
EventId a = Simulator::Schedule (MicroSeconds (10), &SimulatorTests::A, this, 1); |
5b398ac221c7
make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
150
diff
changeset
|
586 |
Simulator::Schedule (MicroSeconds (11), &SimulatorTests::B, this, 2); |
5b398ac221c7
make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
150
diff
changeset
|
587 |
m_idC = Simulator::Schedule (MicroSeconds (12), &SimulatorTests::C, this, 3); |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
588 |
|
209
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
589 |
if (m_idC.IsExpired ()) |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
590 |
{ |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
591 |
ok = false; |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
592 |
} |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
593 |
if (a.IsExpired ()) |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
594 |
{ |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
595 |
ok = false; |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
596 |
} |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
597 |
Simulator::Cancel (a); |
209
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
598 |
if (!a.IsExpired ()) |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
599 |
{ |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
600 |
ok = false; |
8b343b9727d7
fix EventId::IsExpired and Simulator::IsExpired, add EventId::IsRunning, add relevant tests, replace Seconds, MilliSeconds, MicroSeconds, and, NanoSeconds classes by functions named similarly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
200
diff
changeset
|
601 |
} |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
602 |
Simulator::Run (); |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
603 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
604 |
if (!m_a || !m_b || !m_c || !m_d) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
605 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
606 |
ok = false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
607 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
608 |
return ok; |
114
fe0504af6d16
test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
111
diff
changeset
|
609 |
} |
fe0504af6d16
test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
111
diff
changeset
|
610 |
bool |
122
6b8f1eda5c57
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
121
diff
changeset
|
611 |
SimulatorTests::RunTests (void) |
114
fe0504af6d16
test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
111
diff
changeset
|
612 |
{ |
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
613 |
bool ok = true; |
114
fe0504af6d16
test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
111
diff
changeset
|
614 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
615 |
Simulator::SetLinkedList (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
616 |
if (!RunOneTest ()) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
617 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
618 |
ok = false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
619 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
620 |
Simulator::Destroy (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
621 |
Simulator::SetBinaryHeap (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
622 |
if (!RunOneTest ()) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
623 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
624 |
ok = false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
625 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
626 |
Simulator::Destroy (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
627 |
Simulator::SetStdMap (); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
628 |
if (!RunOneTest ()) |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
629 |
{ |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
630 |
ok = false; |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
631 |
} |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
632 |
Simulator::Destroy (); |
31
2def0da92178
add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
30
diff
changeset
|
633 |
|
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
634 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
635 |
Simulator::Schedule (Seconds (0.0), &foo0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
636 |
Simulator::Schedule (Seconds (0.0), &foo1, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
637 |
Simulator::Schedule (Seconds (0.0), &foo2, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
638 |
Simulator::Schedule (Seconds (0.0), &foo3, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
639 |
Simulator::Schedule (Seconds (0.0), &foo4, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
640 |
Simulator::Schedule (Seconds (0.0), &foo5, 0, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
641 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0, this); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
642 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1, this, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
643 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2, this, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
644 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3, this, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
645 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4, this, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
646 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5, this, 0, 0, 0, 0, 0); |
690 | 647 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0, Ptr<SimulatorTests> (this)); |
648 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0); |
|
649 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0); |
|
650 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0); |
|
651 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0); |
|
652 |
Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0); |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
653 |
Simulator::ScheduleNow (&foo0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
654 |
Simulator::ScheduleNow (&foo1, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
655 |
Simulator::ScheduleNow (&foo2, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
656 |
Simulator::ScheduleNow (&foo3, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
657 |
Simulator::ScheduleNow (&foo4, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
658 |
Simulator::ScheduleNow (&foo5, 0, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
659 |
Simulator::ScheduleNow (&SimulatorTests::bar0, this); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
660 |
Simulator::ScheduleNow (&SimulatorTests::bar1, this, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
661 |
Simulator::ScheduleNow (&SimulatorTests::bar2, this, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
662 |
Simulator::ScheduleNow (&SimulatorTests::bar3, this, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
663 |
Simulator::ScheduleNow (&SimulatorTests::bar4, this, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
664 |
Simulator::ScheduleNow (&SimulatorTests::bar5, this, 0, 0, 0, 0, 0); |
690 | 665 |
Simulator::ScheduleNow (&SimulatorTests::bar0, Ptr<SimulatorTests> (this)); |
666 |
Simulator::ScheduleNow (&SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0); |
|
667 |
Simulator::ScheduleNow (&SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0); |
|
668 |
Simulator::ScheduleNow (&SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0); |
|
669 |
Simulator::ScheduleNow (&SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0); |
|
670 |
Simulator::ScheduleNow (&SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0); |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
671 |
Simulator::ScheduleDestroy (&foo0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
672 |
Simulator::ScheduleDestroy (&foo1, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
673 |
Simulator::ScheduleDestroy (&foo2, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
674 |
Simulator::ScheduleDestroy (&foo3, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
675 |
Simulator::ScheduleDestroy (&foo4, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
676 |
Simulator::ScheduleDestroy (&foo5, 0, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
677 |
Simulator::ScheduleDestroy (&SimulatorTests::bar0, this); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
678 |
Simulator::ScheduleDestroy (&SimulatorTests::bar1, this, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
679 |
Simulator::ScheduleDestroy (&SimulatorTests::bar2, this, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
680 |
Simulator::ScheduleDestroy (&SimulatorTests::bar3, this, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
681 |
Simulator::ScheduleDestroy (&SimulatorTests::bar4, this, 0, 0, 0, 0); |
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
682 |
Simulator::ScheduleDestroy (&SimulatorTests::bar5, this, 0, 0, 0, 0, 0); |
690 | 683 |
Simulator::ScheduleDestroy (&SimulatorTests::bar0, Ptr<SimulatorTests> (this)); |
684 |
Simulator::ScheduleDestroy (&SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0); |
|
685 |
Simulator::ScheduleDestroy (&SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0); |
|
686 |
Simulator::ScheduleDestroy (&SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0); |
|
687 |
Simulator::ScheduleDestroy (&SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0); |
|
688 |
Simulator::ScheduleDestroy (&SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0); |
|
181
006158ef00f1
fix memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
163
diff
changeset
|
689 |
|
006158ef00f1
fix memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
163
diff
changeset
|
690 |
Simulator::Run (); |
006158ef00f1
fix memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
163
diff
changeset
|
691 |
Simulator::Destroy (); |
146
2c9ef359e320
implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
145
diff
changeset
|
692 |
|
150
663120712cd9
fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
148
diff
changeset
|
693 |
return ok; |
30
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
694 |
} |
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
695 |
|
53
ae406f4957d5
variable/method/function coding style update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
52
diff
changeset
|
696 |
SimulatorTests gSimulatorTests; |
30
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
697 |
|
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
698 |
}; // namespace ns3 |
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
699 |
|
eb38b7903dfb
add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
29
diff
changeset
|
700 |
#endif /* RUN_SELF_TESTS */ |
24 | 701 |
|
702 |
||
37
af78cb75be51
improve tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
36
diff
changeset
|
703 |