dtnsim::Simulator Class Reference

#include <Simulator.h>

Inheritance diagram for dtnsim::Simulator:

dtn::DTNServer dtnsim::SimEventHandler oasys::Logger List of all members.

Detailed Description

The main simulator class.

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)


Constructor & Destructor Documentation

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]

Destructor.

Definition at line 63 of file Simulator.h.


Member Function Documentation

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]

Initialization.

Definition at line 46 of file Simulator.h.

References instance(), and instance_.

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 (  ) 

Stops simulation and exits the loop.

Definition at line 60 of file Simulator.cc.

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.


Member Data Documentation

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]

current time (static to avoid object)

Definition at line 88 of file Simulator.h.

Referenced by run(), and time().

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]

Definition at line 96 of file Simulator.h.

Referenced by post(), and run().

oasys::DurableStore* dtnsim::Simulator::store_ [private]

Reimplemented from dtn::DTNServer.

Definition at line 98 of file Simulator.h.


The documentation for this class was generated from the following files:
Generated on Thu Jun 7 16:56:59 2007 for DTN Reference Implementation by  doxygen 1.5.1