class pdevs_coord

A multi-component coordinator

Inheritance:


Public Methods

[more] pdevs_coord(devsn* model, ADEVS_TIME_TYPE t_granule = ADEVS_EPSILON)
Construct a simulator for the supplied model.
[more]void computeInputOutput()
Compute the model I/O for time t = tN()
[more]const adevs_bag<PortValue> & getOutput()
Get the output for this model previously computed with computeInputOutput()
[more]void computeDeltaFunc(ADEVS_TIME_TYPE t)
Compute the next state of this model for time t <= tN() Will apply all injected inputs at time t and use the results of the previous call to computeInputOutput() if t = tN()
[more]void endOfCycle()
Do garbage collection and rescheduling at the end of a simulation cycle
[more]void inject(const PortValue& x)
Inject a an input for use during the next call to computeDeltaFunc() The input is owned by the caller and will not be deleted by the simulator
[more]void inject(const adevs_bag<PortValue>& x)
Inject an input for use during the next call to computeDeltaFunc() The input is owned by the caller and will not be deleted by the simulator
[more]ADEVS_TIME_TYPE timeNext() const
Get the simulator's time of next event
[more]ADEVS_TIME_TYPE timeLast() const
Get the simulator's time of last event
[more]virtual ~pdevs_coord()
Destructor.

Protected Fields

[more]devsn* top_model
[more]ADEVS_TIME_TYPE global_tL
[more]ADEVS_TIME_TYPE global_tN
[more]adevs_set<atomic*> imm
[more]adevs_pqueue<ADEVS_TIME_TYPE,atomic*> sched
[more]adevs_bag<PortValue> top_model_input
[more]adevs_bag<PortValue> top_model_output
[more]object_pool<adevs_bag<PortValue> > io_pool
[more]object_pool<adevs_bag<EventReceiver> > recv_pool

Protected Methods

[more]void schedule(devsn* model)
Schedule the components of a network model
[more]void route(devsn* parent, devs* src, PortValue& pv)
Route an event generated by the source model contained in the parent model
[more]void reschedule_atomic(atomic* model)
Reschedule an atomic component
[more]void compute_atomic_delta_func(atomic* model, ADEVS_TIME_TYPE t)
Compute a state change for an atomic model
[more]void compute_structure_changes(int net_exec_count, ADEVS_TIME_TYPE t)
Apply structure changes.
[more]void remove_model(devs* model)
Recursively remove a model from the simulation data structures
[more] pdevs_coord()
[more] pdevs_coord(const pdevs_coord& src)
[more]void operator=(const pdevs_coord& src)


Inherited from basic_sim:

Public Methods

oADEVS_TIME_TYPE getTimeGranule() const
ovirtual void restore_state(ADEVS_TIME_TYPE t)
ovirtual void remove_fossils(ADEVS_TIME_TYPE t_old)

Protected Fields

oADEVS_TIME_TYPE t_granule


Documentation

A multi-component coordinator
o pdevs_coord(devsn* model, ADEVS_TIME_TYPE t_granule = ADEVS_EPSILON)
Construct a simulator for the supplied model. The supplied time granule will be used for zero calculations (ADEVS_EPSILON by default).

ovoid computeInputOutput()
Compute the model I/O for time t = tN()

oconst adevs_bag<PortValue> & getOutput()
Get the output for this model previously computed with computeInputOutput()

ovoid computeDeltaFunc(ADEVS_TIME_TYPE t)
Compute the next state of this model for time t <= tN() Will apply all injected inputs at time t and use the results of the previous call to computeInputOutput() if t = tN()

ovoid endOfCycle()
Do garbage collection and rescheduling at the end of a simulation cycle

ovoid inject(const PortValue& x)
Inject a an input for use during the next call to computeDeltaFunc() The input is owned by the caller and will not be deleted by the simulator

ovoid inject(const adevs_bag<PortValue>& x)
Inject an input for use during the next call to computeDeltaFunc() The input is owned by the caller and will not be deleted by the simulator

oADEVS_TIME_TYPE timeNext() const
Get the simulator's time of next event

oADEVS_TIME_TYPE timeLast() const
Get the simulator's time of last event

ovirtual ~pdevs_coord()
Destructor. Does not destroy the model.

odevsn* top_model

oADEVS_TIME_TYPE global_tL

oADEVS_TIME_TYPE global_tN

oadevs_set<atomic*> imm

oadevs_pqueue<ADEVS_TIME_TYPE,atomic*> sched

oadevs_bag<PortValue> top_model_input

oadevs_bag<PortValue> top_model_output

oobject_pool<adevs_bag<PortValue> > io_pool

oobject_pool<adevs_bag<EventReceiver> > recv_pool

ovoid schedule(devsn* model)
Schedule the components of a network model

ovoid route(devsn* parent, devs* src, PortValue& pv)
Route an event generated by the source model contained in the parent model

ovoid reschedule_atomic(atomic* model)
Reschedule an atomic component

ovoid compute_atomic_delta_func(atomic* model, ADEVS_TIME_TYPE t)
Compute a state change for an atomic model

ovoid compute_structure_changes(int net_exec_count, ADEVS_TIME_TYPE t)
Apply structure changes. First argument is a count of the network executives in the imminent set. State changes for these network executives are computed as part of applying the structural change.

ovoid remove_model(devs* model)
Recursively remove a model from the simulation data structures

o pdevs_coord()

o pdevs_coord(const pdevs_coord& src)

ovoid operator=(const pdevs_coord& src)


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.