NEURON
nrnste.h
Go to the documentation of this file.
1 #ifndef nrnste_h
2 #define nrnste_h
3 // StateTransitionEvent is a finite state machine in which a transtion occurs
4 // when the transition condition is true. For speed the transition condition
5 // is of the form *var1 > *var2 and allows second order interpolation.
6 // Transition conditions are checked only if the source state is the
7 // current state.
8 
9 class HocCommand;
11 class STECondition;
12 
14  public:
15  STETransition();
16  virtual ~STETransition();
17  void event(); // from STECondition::deliver
18  virtual double value() {
19  return *var1_ - *var2_;
20  }
21  void activate(); // add ste_ to watch list
22  void deactivate(); // remove ste_ from watch list
23 
24  double* var1_;
25  double* var2_;
29  int dest_;
31 };
32 
33 class STEState {
34  public:
35  STEState();
36  virtual ~STEState();
38  int ntrans_;
40 };
41 
43  public:
45  virtual ~StateTransitionEvent();
46  void transition(int src, int dest, double* var1, double* var2, HocCommand*);
47  void state(int i); // set current state -- update watch list.
48  int state() {
49  return istate_;
50  }
51  int nstate() {
52  return nstate_;
53  }
54  void activate();
55  void deactivate();
56 
57  int nstate_;
58  int istate_;
62 };
63 
64 
65 #endif
virtual ~STEState()
Definition: nrnste.cpp:118
STETransition * add_transition()
Definition: nrnste.cpp:124
STEState()
Definition: nrnste.cpp:113
int ntrans_
Definition: nrnste.h:38
STETransition * transitions_
Definition: nrnste.h:39
virtual ~STETransition()
Definition: nrnste.cpp:155
STECondition * stec_
Definition: nrnste.h:28
StateTransitionEvent * ste_
Definition: nrnste.h:27
void deactivate()
Definition: netcvode.cpp:5569
void event()
Definition: nrnste.cpp:164
HocCommand * hc_
Definition: nrnste.h:26
void activate()
Definition: netcvode.cpp:5558
bool var1_is_time_
Definition: nrnste.h:30
virtual double value()
Definition: nrnste.h:18
double * var2_
Definition: nrnste.h:25
int dest_
Definition: nrnste.h:29
double * var1_
Definition: nrnste.h:24
Point_process * pnt_
Definition: nrnste.h:60
STEState * states_
Definition: nrnste.h:59
virtual ~StateTransitionEvent()
Definition: nrnste.cpp:79
void transition(int src, int dest, double *var1, double *var2, HocCommand *)
Definition: netcvode.cpp:5540
StateTransitionEvent(int nstate, Point_process *)
Definition: nrnste.cpp:71
#define i
Definition: md1redef.h:12