Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Add node processing delay for simulation
  • Loading branch information
kkopec committed May 14, 2017
commit 2469811a979648aa3093528cc1c18abe8f53144e
6 changes: 6 additions & 0 deletions src/core/model/default-simulator-impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,12 @@ DefaultSimulatorImpl::Now (void) const
return TimeStep (m_currentTs);
}

void
DefaultSimulatorImpl::AddProcessingTime (uint64_t nanos)
{
m_currentTs += nanos;
}

Time
DefaultSimulatorImpl::GetDelayLeft (const EventId &id) const
{
Expand Down
1 change: 1 addition & 0 deletions src/core/model/default-simulator-impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ class DefaultSimulatorImpl : public SimulatorImpl
virtual bool IsExpired (const EventId &id) const;
virtual void Run (void);
virtual Time Now (void) const;
virtual void AddProcessingTime (uint64_t nanos);
virtual Time GetDelayLeft (const EventId &id) const;
virtual Time GetMaximumSimulationTime (void) const;
virtual void SetScheduler (ObjectFactory schedulerFactory);
Expand Down
6 changes: 6 additions & 0 deletions src/core/model/realtime-simulator-impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -601,6 +601,12 @@ RealtimeSimulatorImpl::Now (void) const
return TimeStep (m_currentTs);
}

void
RealtimeSimulatorImpl::AddProcessingTime (uint64_t nanos)
{
m_currentTs += nanos;
}

//
// Schedule an event for a _relative_ time in the future.
//
Expand Down
1 change: 1 addition & 0 deletions src/core/model/realtime-simulator-impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ class RealtimeSimulatorImpl : public SimulatorImpl
virtual bool IsExpired (const EventId &ev) const;
virtual void Run (void);
virtual Time Now (void) const;
virtual void AddProcessingTime (uint64_t nanos);
virtual Time GetDelayLeft (const EventId &id) const;
virtual Time GetMaximumSimulationTime (void) const;
virtual void SetScheduler (ObjectFactory schedulerFactory);
Expand Down
2 changes: 2 additions & 0 deletions src/core/model/simulator-impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ class SimulatorImpl : public Object
virtual void Run (void) = 0;
/** \copydoc Simulator::Now */
virtual Time Now (void) const = 0;
/** \copydoc Simulator::AddProcessingTime */
virtual void AddProcessingTime (uint64_t nanos) = 0;
/** \copydoc Simulator::GetDelayLeft */
virtual Time GetDelayLeft (const EventId &id) const = 0;
/** \copydoc Simulator::GetMaximumSimulationTime */
Expand Down
6 changes: 6 additions & 0 deletions src/core/model/simulator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,12 @@ Simulator::Now (void)
return GetImpl ()->Now ();
}

void
Simulator::AddProcessingTime (uint64_t nanos)
{
GetImpl ()->AddProcessingTime (nanos);
}

Time
Simulator::GetDelayLeft (const EventId &id)
{
Expand Down
7 changes: 7 additions & 0 deletions src/core/model/simulator.h
Original file line number Diff line number Diff line change
Expand Up @@ -1250,6 +1250,13 @@ class Simulator
*/
static Time Now (void);

/**
* Adds node's processing time to the current simulation virtual time.
*
* @param [in] number of nanoseconds of processing time.
*/
static void AddProcessingTime (uint64_t nanos);

/**
* Get the remaining time until this event will execute.
*
Expand Down
6 changes: 6 additions & 0 deletions src/mpi/model/distributed-simulator-impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,12 @@ DistributedSimulatorImpl::Now (void) const
return TimeStep (m_currentTs);
}

void
DistributedSimulatorImpl::AddProcessingTime (uint64_t nanos)
{
m_currentTs += nanos;
}

Time
DistributedSimulatorImpl::GetDelayLeft (const EventId &id) const
{
Expand Down
1 change: 1 addition & 0 deletions src/mpi/model/distributed-simulator-impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ class DistributedSimulatorImpl : public SimulatorImpl
virtual bool IsExpired (const EventId &id) const;
virtual void Run (void);
virtual Time Now (void) const;
virtual void AddProcessingTime (uint64_t nanos);
virtual Time GetDelayLeft (const EventId &id) const;
virtual Time GetMaximumSimulationTime (void) const;
virtual void SetMaximumLookAhead (const Time lookAhead);
Expand Down
6 changes: 6 additions & 0 deletions src/mpi/model/null-message-simulator-impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,12 @@ NullMessageSimulatorImpl::Now (void) const
return TimeStep (m_currentTs);
}

void
NullMessageSimulatorImpl::AddProcessingTime (uint64_t nanos)
{
m_currentTs += nanos;
}

Time
NullMessageSimulatorImpl::GetDelayLeft (const EventId &id) const
{
Expand Down
1 change: 1 addition & 0 deletions src/mpi/model/null-message-simulator-impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ class NullMessageSimulatorImpl : public SimulatorImpl
virtual void Run (void);
virtual void RunOneEvent (void);
virtual Time Now (void) const;
virtual void AddProcessingTime (uint64_t nanos);
virtual Time GetDelayLeft (const EventId &id) const;
virtual Time GetMaximumSimulationTime (void) const;
virtual void SetScheduler (ObjectFactory schedulerFactory);
Expand Down