Bug #270: Simulator::RunOneEvent

This commit is contained in:
Gustavo J. A. M. Carneiro
2008-08-06 11:37:52 +01:00
parent bf060fddf8
commit 161adc2a4e
6 changed files with 35 additions and 0 deletions

View File

@@ -367,6 +367,11 @@ def register_Ns3Simulator_methods(root_module, cls):
'void',
[],
is_static=True, unblock_threads=True)
## simulator.h: static void ns3::Simulator::RunOneEvent() [member function]
cls.add_method('RunOneEvent',
'void',
[],
is_static=True)
## simulator.h: static void ns3::Simulator::Stop() [member function]
cls.add_method('Stop',
'void',
@@ -669,6 +674,11 @@ def register_Ns3SimulatorImpl_methods(root_module, cls):
'void',
[],
is_pure_virtual=True, is_virtual=True)
## simulator-impl.h: void ns3::SimulatorImpl::RunOneEvent() [member function]
cls.add_method('RunOneEvent',
'void',
[],
is_pure_virtual=True, is_virtual=True)
## simulator-impl.h: ns3::Time ns3::SimulatorImpl::Now() const [member function]
cls.add_method('Now',
'ns3::Time',
@@ -765,6 +775,11 @@ def register_Ns3DefaultSimulatorImpl_methods(root_module, cls):
'void',
[],
is_virtual=True)
## default-simulator-impl.h: void ns3::DefaultSimulatorImpl::RunOneEvent() [member function]
cls.add_method('RunOneEvent',
'void',
[],
is_virtual=True)
## default-simulator-impl.h: ns3::Time ns3::DefaultSimulatorImpl::Now() const [member function]
cls.add_method('Now',
'ns3::Time',

View File

@@ -156,6 +156,12 @@ DefaultSimulatorImpl::Run (void)
NS_ASSERT(!m_events->IsEmpty () || m_unscheduledEvents == 0);
}
void
DefaultSimulatorImpl::RunOneEvent (void)
{
ProcessOneEvent ();
}
void
DefaultSimulatorImpl::Stop (void)
{

View File

@@ -55,6 +55,7 @@ public:
virtual void Cancel (const EventId &ev);
virtual bool IsExpired (const EventId &ev) const;
virtual void Run (void);
virtual void RunOneEvent (void);
virtual Time Now (void) const;
virtual Time GetDelayLeft (const EventId &id) const;
virtual Time GetMaximumSimulationTime (void) const;

View File

@@ -49,6 +49,7 @@ public:
virtual void Cancel (const EventId &ev) = 0;
virtual bool IsExpired (const EventId &ev) const = 0;
virtual void Run (void) = 0;
virtual void RunOneEvent (void) = 0;
virtual Time Now (void) const = 0;
virtual Time GetDelayLeft (const EventId &id) const = 0;
virtual Time GetMaximumSimulationTime (void) const = 0;

View File

@@ -145,6 +145,13 @@ Simulator::Run (void)
GetImpl ()->Run ();
}
void
Simulator::RunOneEvent (void)
{
NS_LOG_FUNCTION_NOARGS ();
GetImpl ()->RunOneEvent ();
}
void
Simulator::Stop (void)
{

View File

@@ -116,6 +116,11 @@ public:
*/
static void Run (void);
/**
* Process only the next simulation event, then return immediately.
*/
static void RunOneEvent (void);
/**
* If an event invokes this method, it will be the last
* event scheduled by the Simulator::run method before