#include <Simulator.h>
Inheritance diagram for dtnsim::Simulator:
This defines the main event loop
Definition at line 31 of file Simulator.h.
Public Member Functions | |
Simulator (DTNStorageConfig *storage_config) | |
Constructor. | |
virtual | ~Simulator () |
Destructor. | |
void | exit () |
Stops simulation and exits the loop. | |
void | run () |
The main simulator thread that fires the next event. | |
Static Public Member Functions | |
static Simulator * | instance () |
Singleton instance accessor. | |
static void | init (Simulator *instance) |
Initialization. | |
static double | time () |
static void | post (SimEvent *e) |
Add an event to the main event queue. | |
Static Public Attributes | |
static double | runtill_ |
time to end the simulation | |
Protected Member Functions | |
void | process (SimEvent *e) |
virtual from SimEventHandler | |
Static Protected Attributes | |
static Simulator * | instance_ |
singleton instance | |
Private Attributes | |
bool | is_running_ |
maintains the state if the simulator is running or paused | |
std::priority_queue< SimEvent *, std::vector< SimEvent * >, SimEventCompare > | eventq_ |
oasys::DurableStore * | store_ |
Static Private Attributes | |
static double | time_ |
current time (static to avoid object) |
dtnsim::Simulator::Simulator | ( | DTNStorageConfig * | storage_config | ) |
Constructor.
Definition at line 36 of file Simulator.cc.
References oasys::StorageConfig::init_, oasys::StorageConfig::leave_clean_file_, dtn::DTNStorageConfig::payload_dir_, dtn::DTNServer::storage_config(), oasys::StorageConfig::tidy_, oasys::StorageConfig::tidy_wait_, and oasys::StorageConfig::type_.
virtual dtnsim::Simulator::~Simulator | ( | ) | [inline, virtual] |
static Simulator* dtnsim::Simulator::instance | ( | ) | [inline, static] |
Singleton instance accessor.
Definition at line 36 of file Simulator.h.
References instance_.
Referenced by init().
static void dtnsim::Simulator::init | ( | Simulator * | instance | ) | [inline, static] |
static double dtnsim::Simulator::time | ( | ) | [inline, static] |
Definition at line 53 of file Simulator.h.
References time_.
Referenced by dtnsim::SimContact::chew_message(), dtnsim::SimContact::chewing_complete(), dtnsim::SimContact::close_contact(), dtnsim::SimRegistration::deliver_bundle(), dtnsim::gettimeofday(), dtnsim::SimContact::open_contact(), dtnsim::TrAgent::process(), dtnsim::TrAgent::send_bundle(), and dtnsim::SimConvergenceLayer::send_bundle().
void dtnsim::Simulator::post | ( | SimEvent * | e | ) | [static] |
Add an event to the main event queue.
Definition at line 54 of file Simulator.cc.
References eventq_, and instance_.
Referenced by dtnsim::SimContact::chew_message(), dtnsim::SimContact::chewing_complete(), dtnsim::SimContact::close_contact(), dtnsim::Simdtn2Command::exec(), dtnsim::NodeCommand::exec(), dtnsim::ConnCommand::exec(), dtnsim::TrAgent::init(), dtnsim::SimContact::open_contact(), dtnsim::TrAgent::process(), dtnsim::TrAgent::send_bundle(), and dtnsim::SimConvergenceLayer::send_bundle().
void dtnsim::Simulator::exit | ( | ) |
void dtnsim::Simulator::run | ( | ) |
The main simulator thread that fires the next event.
Definition at line 69 of file Simulator.cc.
References ASSERT, eventq_, dtnsim::SimEvent::handler(), oasys::Log::instance(), is_running_, dtnsim::SimEvent::is_valid(), log_debug, log_info, dtnsim::Topology::node_table(), dtnsim::SimEventHandler::process(), runtill_, oasys::Log::set_prefix(), dtnsim::SimEvent::time(), time_, and dtnsim::SimEvent::type_str().
void dtnsim::Simulator::process | ( | SimEvent * | e | ) | [protected, virtual] |
virtual from SimEventHandler
Implements dtnsim::SimEventHandler.
Definition at line 130 of file Simulator.cc.
References NOTIMPLEMENTED.
double dtnsim::Simulator::runtill_ [static] |
time to end the simulation
Definition at line 80 of file Simulator.h.
Referenced by run(), and dtnsim::SimCommand::SimCommand().
Simulator * dtnsim::Simulator::instance_ [static, protected] |
singleton instance
Definition at line 83 of file Simulator.h.
Referenced by init(), instance(), and post().
double dtnsim::Simulator::time_ [static, private] |
bool dtnsim::Simulator::is_running_ [private] |
maintains the state if the simulator is running or paused
Definition at line 90 of file Simulator.h.
Referenced by run().
std::priority_queue<SimEvent*, std::vector<SimEvent*>, SimEventCompare> dtnsim::Simulator::eventq_ [private] |
oasys::DurableStore* dtnsim::Simulator::store_ [private] |