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 ()
 Main run loop.

Static Public Member Functions

static Simulatorinstance ()
 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_ = -1
 time to end the simulation

Protected Member Functions

void process (SimEvent *e)
 virtual from SimEventHandler

Static Protected Attributes

static Simulatorinstance_
 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::DurableStorestore_

Static Private Attributes

static double time_ = 0
 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_, 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_.

static void dtnsim::Simulator::init ( Simulator instance  )  [inline, static]

Initialization.

Definition at line 46 of file Simulator.h.

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

Main run loop.

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(), dtnsim::Node::process_bundle_events(), runtill_, dtnsim::Node::set_active(), 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_ = -1 [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_ = 0 [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 Sat Sep 8 08:43:50 2007 for DTN Reference Implementation by  doxygen 1.5.3