dtnsim::Simulator Class Reference

#include <Simulator.h>

Inheritance diagram for dtnsim::Simulator:

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

Detailed Description

The main simulator class.

This defines the main event loop

Definition at line 50 of file Simulator.h.

Public Member Functions

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

Static Private Attributes

static double time_
 current time (static to avoid object)


Constructor & Destructor Documentation

dtnsim::Simulator::Simulator (  ) 

Constructor.

Definition at line 49 of file Simulator.cc.

virtual dtnsim::Simulator::~Simulator (  )  [inline, virtual]

Destructor.

Definition at line 82 of file Simulator.h.


Member Function Documentation

static Simulator* dtnsim::Simulator::instance (  )  [inline, static]

Singleton instance accessor.

Definition at line 55 of file Simulator.h.

References instance_.

Referenced by init().

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

Initialization.

Definition at line 65 of file Simulator.h.

References instance(), and instance_.

static double dtnsim::Simulator::time (  )  [inline, static]

Definition at line 72 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 57 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 63 of file Simulator.cc.

Referenced by run().

void dtnsim::Simulator::run (  ) 

The main simulator thread that fires the next event.

Definition at line 72 of file Simulator.cc.

References ASSERT, eventq_, exit(), 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 131 of file Simulator.cc.

References NOTIMPLEMENTED.


Member Data Documentation

double dtnsim::Simulator::runtill_ [static]

time to end the simulation

Definition at line 99 of file Simulator.h.

Referenced by run(), and dtnsim::SimCommand::SimCommand().

Simulator * dtnsim::Simulator::instance_ [static, protected]

singleton instance

Definition at line 102 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 107 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 109 of file Simulator.h.

Referenced by run().

std::priority_queue<SimEvent*, std::vector<SimEvent*>, SimEventCompare> dtnsim::Simulator::eventq_ [private]

Definition at line 115 of file Simulator.h.

Referenced by post(), and run().


The documentation for this class was generated from the following files:
Generated on Fri Dec 22 14:48:05 2006 for DTN Reference Implementation by  doxygen 1.5.1