dtnsim::Simulator Class Reference

The main simulator class. More...

#include <Simulator.h>

Inheritance diagram for dtnsim::Simulator:
dtnsim::SimEventHandler

List of all members.

Public Member Functions

 Simulator ()
 Constructor.
virtual ~Simulator ()
 Destructor.
void exit ()
 Stops simulation and exits the loop.
void run ()
 Main run loop.
int run_node_events ()
 Handle all bundle events at nodes returning the amount of time (in ms) until the next timer is due.
void pause ()
 Pause execution of the simulator, running a console loop until it exits.
void run_console (bool complete)
 Run the command loop.
void set_exit_event (SimAtEvent *event)
 Register a command to run at exit.

Static Public Member Functions

static double time ()
 Return the current simulator 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

Private Member Functions

void process (SimEvent *e)
 Virtual from SimEventHandler.
void log_inqueue_stats ()
void run_at_event (SimAtEvent *evt)
void check_interrupt ()

Static Private Member Functions

static void handle_interrupt (int sig)

Private Attributes

std::priority_queue< SimEvent
*, std::vector< SimEvent * >
, SimEventCompare
eventq_
SimAtEventexit_event_

Static Private Attributes

static double time_ = 0
 current time (static to avoid object)
static bool interrupted_ = false

Detailed Description

The main simulator class.

This defines the main event loop

Definition at line 30 of file Simulator.h.


Constructor & Destructor Documentation

dtnsim::Simulator::Simulator (  ) 

Constructor.

Definition at line 43 of file Simulator.cc.

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

Destructor.

Definition at line 48 of file Simulator.h.


Member Function Documentation

void dtnsim::Simulator::check_interrupt (  )  [private]

Definition at line 254 of file Simulator.cc.

References interrupted_, run_console(), and time_.

Referenced by run(), and run_node_events().

void dtnsim::Simulator::exit (  ) 

Stops simulation and exits the loop.

Definition at line 59 of file Simulator.cc.

void dtnsim::Simulator::handle_interrupt ( int  sig  )  [static, private]

Definition at line 241 of file Simulator.cc.

References interrupted_.

Referenced by run().

void dtnsim::Simulator::log_inqueue_stats (  )  [private]
void dtnsim::Simulator::pause (  ) 

Pause execution of the simulator, running a console loop until it exits.

Definition at line 210 of file Simulator.cc.

References run_console(), and time_.

Referenced by run_at_event().

void dtnsim::Simulator::post ( SimEvent e  )  [static]

Add an event to the main event queue.

Definition at line 52 of file Simulator.cc.

Referenced by dtnsim::SimCommand::exec().

void dtnsim::Simulator::process ( SimEvent e  )  [private, virtual]

Virtual from SimEventHandler.

Implements dtnsim::SimEventHandler.

Definition at line 286 of file Simulator.cc.

References run_at_event(), dtnsim::SIM_AT_EVENT, and dtnsim::SimEvent::type().

void dtnsim::Simulator::run (  ) 
void dtnsim::Simulator::run_at_event ( SimAtEvent evt  )  [private]

Definition at line 308 of file Simulator.cc.

References dtnsim::SimAtEvent::objc_, dtnsim::SimAtEvent::objv_, and pause().

Referenced by process(), and run().

void dtnsim::Simulator::run_console ( bool  complete  ) 

Run the command loop.

Definition at line 221 of file Simulator.cc.

References dtnsim::Node::active_node(), interrupted_, and dtnsim::Node::set_active().

Referenced by check_interrupt(), and pause().

int dtnsim::Simulator::run_node_events (  ) 

Handle all bundle events at nodes returning the amount of time (in ms) until the next timer is due.

Definition at line 66 of file Simulator.cc.

References check_interrupt(), dtnsim::Node::name(), dtnsim::Topology::node_table(), dtnsim::Node::process_one_bundle_event(), and dtnsim::Node::set_active().

Referenced by run().

void dtnsim::Simulator::set_exit_event ( SimAtEvent event  ) 

Register a command to run at exit.

Definition at line 300 of file Simulator.cc.

References exit_event_.

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

Return the current simulator time.

Definition at line 38 of file Simulator.h.

References time_.

Referenced by dtnsim::gettimeofday(), dtnsim::SimLog::log_entry(), and dtnsim::SimLink::start_next_bundle().


Member Data Documentation

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

Definition at line 101 of file Simulator.h.

Referenced by run().

Definition at line 103 of file Simulator.h.

Referenced by run(), and set_exit_event().

bool dtnsim::Simulator::interrupted_ = false [static, private]

Definition at line 112 of file Simulator.h.

Referenced by check_interrupt(), handle_interrupt(), and run_console().

double dtnsim::Simulator::runtill_ = -1 [static]

time to end the simulation

Definition at line 87 of file Simulator.h.

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

double dtnsim::Simulator::time_ = 0 [static, private]

current time (static to avoid object)

Definition at line 97 of file Simulator.h.

Referenced by check_interrupt(), pause(), run(), and time().


The documentation for this class was generated from the following files:
Generated on Sun Nov 21 13:21:27 2010 for DTN Reference Implementation by  doxygen 1.6.3