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 <
class X,
class T>
class Network;
47 template <
class X,
class T>
class Atomic;
56 #define ADEVS_NOT_ASSIGNED_TO_PROCESSOR -1 64 template <
class X,
class T =
double>
class Devs 70 proc(ADEVS_NOT_ASSIGNED_TO_PROCESSOR)
145 template <
class X,
class T =
double>
class Event 192 template <
class X,
class T =
double>
class Atomic:
public Devs<X,T>
199 tL = adevs_zero<T>();
200 tL_cp = adevs_sentinel<T>();
205 virtual void delta_int() = 0;
211 virtual void delta_ext(T e,
const Bag<X>& xb) = 0;
216 virtual void delta_conf(
const Bag<X>& xb) = 0;
221 virtual void output_func(
Bag<X>& yb) = 0;
233 virtual void gc_output(
Bag<X>& g) = 0;
276 unsigned int q_index;
291 template <
class X,
class T =
double>
class MealyAtomic:
301 virtual void output_func(T e,
const Bag<X>& xb,
Bag<X>& yb) = 0;
306 virtual void output_func(
const Bag<X>& xb,
Bag<X>& yb) = 0;
319 template <
class X,
class T =
double>
class Network:
public Devs<X,T>
Atomic< X, T > * typeIsAtomic()
Returns a pointer to this model.
Definition: adevs_models.h:258
Definition: adevs_models.h:50
Definition: adevs_set.h:42
Event()
Constructor. Sets the model to NULL.
Definition: adevs_models.h:149
Devs< X, T > * model
The model associated with the event.
Definition: adevs_models.h:180
Definition: adevs_models.h:46
virtual void endLookahead()
Definition: adevs_models.h:254
int getProc()
Definition: adevs_models.h:133
~Event()
Destructor.
Definition: adevs_models.h:184
virtual T lookahead()
Definition: adevs_models.h:121
const Event< X, T > & operator=(const Event< X, T > &src)
Assignment operator.
Definition: adevs_models.h:173
void setParent(Network< X, T > *parent)
Definition: adevs_models.h:99
Atomic()
The constructor should place the model into its initial state.
Definition: adevs_models.h:196
Network< X, T > * typeIsNetwork()
Returns a pointer to this model.
Definition: adevs_models.h:354
virtual MealyAtomic< X, T > * typeIsMealyAtomic()
Returns NULL if this is not a mealy atomic model; returns itself otherwise.
Definition: adevs_models.h:86
Definition: adevs_models.h:49
Event(const Event< X, T > &src)
Copy constructor.
Definition: adevs_models.h:167
Definition: adevs_exception.h:80
virtual Network< X, T > * typeIsNetwork()
Definition: adevs_models.h:82
T getLastEventTime() const
Definition: adevs_models.h:266
X value
The value associated with the event.
Definition: adevs_models.h:182
Definition: adevs_fmi.h:56
virtual bool model_transition()
Definition: adevs_models.h:113
virtual void beginLookahead()
Definition: adevs_models.h:243
virtual ~Devs()
Destructor.
Definition: adevs_models.h:74
virtual Atomic< X, T > * typeIsAtomic()
Returns NULL if this is not an atomic model; returns itself otherwise.
Definition: adevs_models.h:84
virtual ~Network()
Definition: adevs_models.h:350
Definition: adevs_models.h:64
Devs()
Default constructor.
Definition: adevs_models.h:68
virtual ~Atomic()
Destructor.
Definition: adevs_models.h:256
void setProc(int proc)
Definition: adevs_models.h:128
Definition: adevs_models.h:145
MealyAtomic< X, T > * typeIsMealyAtomic()
Returns NULL if this is not a mealy atomic model; returns itself otherwise.
Definition: adevs_models.h:296
Definition: adevs_models.h:47
const Network< X, T > * getParent() const
Definition: adevs_models.h:91
Event(Devs< X, T > *model, const X &value)
Definition: adevs_models.h:161
Network()
Constructor.
Definition: adevs_models.h:323
Definition: adevs_models.h:48