31 #ifndef __adevs_models_h_ 32 #define __adevs_models_h_ 33 #include "adevs_time.h" 34 #include "adevs_bag.h" 35 #include "adevs_set.h" 36 #include "adevs_exception.h" 46 template <
typename X,
typename T>
class Network;
47 template <
typename X,
typename T>
class Atomic;
49 template <
typename X,
typename T>
class Schedule;
58 template <
typename X,
typename T =
double>
class Devs 116 template <
typename X,
typename T =
double>
class Event 163 template <
typename X,
typename T =
double>
class Atomic:
public Devs<X,T>
177 virtual void delta_int() = 0;
183 virtual void delta_ext(T e,
const Bag<X>& xb) = 0;
188 virtual void delta_conf(
const Bag<X>& xb) = 0;
193 virtual void output_func(
Bag<X>& yb) = 0;
205 virtual void gc_output(
Bag<X>& g) = 0;
227 unsigned int q_index;
242 template <
typename X,
typename T =
double>
class MealyAtomic:
252 virtual void output_func(T e,
const Bag<X>& xb,
Bag<X>& yb) = 0;
257 virtual void output_func(
const Bag<X>& xb,
Bag<X>& yb) = 0;
270 template <
typename X,
typename T =
double>
class Network:
public Devs<X,T>
Atomic< X, T > * typeIsAtomic()
Returns a pointer to this model.
Definition: adevs_models.h:209
Definition: adevs_models.h:50
Definition: adevs_set.h:42
Event()
Constructor. Sets the model to NULL.
Definition: adevs_models.h:120
Devs< X, T > * model
The model associated with the event.
Definition: adevs_models.h:151
Definition: adevs_models.h:46
~Event()
Destructor.
Definition: adevs_models.h:155
const Event< X, T > & operator=(const Event< X, T > &src)
Assignment operator.
Definition: adevs_models.h:144
void setParent(Network< X, T > *parent)
Definition: adevs_models.h:92
Atomic()
The constructor should place the model into its initial state.
Definition: adevs_models.h:167
Network< X, T > * typeIsNetwork()
Returns a pointer to this model.
Definition: adevs_models.h:305
virtual MealyAtomic< X, T > * typeIsMealyAtomic()
Returns NULL if this is not a mealy atomic model; returns itself otherwise.
Definition: adevs_models.h:79
Definition: adevs_models.h:49
Event(const Event< X, T > &src)
Copy constructor.
Definition: adevs_models.h:138
virtual Network< X, T > * typeIsNetwork()
Definition: adevs_models.h:75
T getLastEventTime() const
Definition: adevs_models.h:217
X value
The value associated with the event.
Definition: adevs_models.h:153
Definition: adevs_fmi.h:57
virtual bool model_transition()
Definition: adevs_models.h:106
virtual ~Devs()
Destructor.
Definition: adevs_models.h:67
virtual Atomic< X, T > * typeIsAtomic()
Returns NULL if this is not an atomic model; returns itself otherwise.
Definition: adevs_models.h:77
virtual ~Network()
Definition: adevs_models.h:301
Definition: adevs_models.h:58
Devs()
Default constructor.
Definition: adevs_models.h:62
virtual ~Atomic()
Destructor.
Definition: adevs_models.h:207
Definition: adevs_models.h:116
MealyAtomic< X, T > * typeIsMealyAtomic()
Returns NULL if this is not a mealy atomic model; returns itself otherwise.
Definition: adevs_models.h:247
Definition: adevs_models.h:47
const Network< X, T > * getParent() const
Definition: adevs_models.h:84
Event(Devs< X, T > *model, const X &value)
Definition: adevs_models.h:132
Network()
Constructor.
Definition: adevs_models.h:274
Definition: adevs_models.h:48