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;
55 #define ADEVS_NOT_ASSIGNED_TO_PROCESSOR -1
63 template <
class X,
class T =
double>
class Devs
69 proc(ADEVS_NOT_ASSIGNED_TO_PROCESSOR)
142 template <
class X,
class T =
double>
class Event
189 template <
class X,
class T =
double>
class Atomic:
public Devs<X,T>
196 tL = adevs_zero<T>();
197 tL_cp = adevs_sentinel<T>();
273 unsigned int q_index;
283 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:255
Definition: adevs_models.h:49
virtual void route(const X &value, Devs< X, T > *model, Bag< Event< X, T > > &r)=0
Definition: adevs_set.h:42
Event()
Constructor. Sets the model to NULL.
Definition: adevs_models.h:146
Devs< X, T > * model
The model associated with the event.
Definition: adevs_models.h:177
Definition: adevs_models.h:46
virtual void endLookahead()
Definition: adevs_models.h:251
virtual void gc_output(Bag< X > &g)=0
int getProc()
Definition: adevs_models.h:130
virtual void delta_int()=0
Internal transition function.
~Event()
Destructor.
Definition: adevs_models.h:181
virtual void getComponents(Set< Devs< X, T > * > &c)=0
virtual T lookahead()
Definition: adevs_models.h:118
const Event< X, T > & operator=(const Event< X, T > &src)
Assignment operator.
Definition: adevs_models.h:170
void setParent(Network< X, T > *parent)
Definition: adevs_models.h:96
Atomic()
The constructor should place the model into its initial state.
Definition: adevs_models.h:193
Network< X, T > * typeIsNetwork()
Returns a pointer to this model.
Definition: adevs_models.h:318
Definition: adevs_models.h:48
Event(const Event< X, T > &src)
Copy constructor.
Definition: adevs_models.h:164
Definition: adevs_exception.h:80
virtual void output_func(Bag< X > &yb)=0
virtual Network< X, T > * typeIsNetwork()
Definition: adevs_models.h:81
T getLastEventTime() const
Definition: adevs_models.h:263
X value
The value associated with the event.
Definition: adevs_models.h:179
virtual bool model_transition()
Definition: adevs_models.h:110
virtual void beginLookahead()
Definition: adevs_models.h:240
virtual ~Devs()
Destructor.
Definition: adevs_models.h:73
virtual Atomic< X, T > * typeIsAtomic()
Returns NULL if this is not an atomic model; returns itself otherwise.
Definition: adevs_models.h:83
virtual ~Network()
Definition: adevs_models.h:314
virtual void delta_ext(T e, const Bag< X > &xb)=0
Definition: adevs_models.h:63
Devs()
Default constructor.
Definition: adevs_models.h:67
virtual void delta_conf(const Bag< X > &xb)=0
virtual ~Atomic()
Destructor.
Definition: adevs_models.h:253
void setProc(int proc)
Definition: adevs_models.h:125
Definition: adevs_models.h:142
Definition: adevs_models.h:47
const Network< X, T > * getParent() const
Definition: adevs_models.h:88
Event(Devs< X, T > *model, const X &value)
Definition: adevs_models.h:158
Network()
Constructor.
Definition: adevs_models.h:287