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;
59 template <
typename X,
typename T =
double>
class Devs 117 template <
typename X,
typename T =
double>
class Event 164 template <
typename X,
typename T =
double>
class Atomic:
public Devs<X,T>
178 virtual void delta_int() = 0;
184 virtual void delta_ext(T e,
const Bag<X>& xb) = 0;
189 virtual void delta_conf(
const Bag<X>& xb) = 0;
194 virtual void output_func(
Bag<X>& yb) = 0;
206 virtual void gc_output(
Bag<X>& g) = 0;
229 unsigned int q_index;
244 template <
typename X,
typename T =
double>
class MealyAtomic:
254 virtual void output_func(T e,
const Bag<X>& xb,
Bag<X>& yb) = 0;
259 virtual void output_func(
const Bag<X>& xb,
Bag<X>& yb) = 0;
272 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:210
Definition: adevs_models.h:51
Definition: adevs_set.h:42
Event()
Constructor. Sets the model to NULL.
Definition: adevs_models.h:121
Devs< X, T > * model
The model associated with the event.
Definition: adevs_models.h:152
Definition: adevs_models.h:46
Definition: adevs_models.h:50
~Event()
Destructor.
Definition: adevs_models.h:156
const Event< X, T > & operator=(const Event< X, T > &src)
Assignment operator.
Definition: adevs_models.h:145
void setParent(Network< X, T > *parent)
Definition: adevs_models.h:93
Atomic()
The constructor should place the model into its initial state.
Definition: adevs_models.h:168
Network< X, T > * typeIsNetwork()
Returns a pointer to this model.
Definition: adevs_models.h:307
virtual MealyAtomic< X, T > * typeIsMealyAtomic()
Returns NULL if this is not a mealy atomic model; returns itself otherwise.
Definition: adevs_models.h:80
Definition: adevs_models.h:49
Event(const Event< X, T > &src)
Copy constructor.
Definition: adevs_models.h:139
virtual Network< X, T > * typeIsNetwork()
Definition: adevs_models.h:76
T getLastEventTime() const
Definition: adevs_models.h:218
X value
The value associated with the event.
Definition: adevs_models.h:154
Definition: adevs_fmi.h:57
virtual bool model_transition()
Definition: adevs_models.h:107
virtual ~Devs()
Destructor.
Definition: adevs_models.h:68
virtual Atomic< X, T > * typeIsAtomic()
Returns NULL if this is not an atomic model; returns itself otherwise.
Definition: adevs_models.h:78
virtual ~Network()
Definition: adevs_models.h:303
Definition: adevs_models.h:59
Devs()
Default constructor.
Definition: adevs_models.h:63
virtual ~Atomic()
Destructor.
Definition: adevs_models.h:208
Definition: adevs_models.h:117
MealyAtomic< X, T > * typeIsMealyAtomic()
Returns NULL if this is not a mealy atomic model; returns itself otherwise.
Definition: adevs_models.h:249
Definition: adevs_models.h:47
const Network< X, T > * getParent() const
Definition: adevs_models.h:85
Event(Devs< X, T > *model, const X &value)
Definition: adevs_models.h:133
Network()
Constructor.
Definition: adevs_models.h:276
Definition: adevs_models.h:48