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
;
10
class
StateTransitionEvent
;
11
class
STECondition
;
12
13
class
STETransition
{
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_
;
26
HocCommand
*
hc_
;
27
StateTransitionEvent
*
ste_
;
28
STECondition
*
stec_
;
29
int
dest_
;
30
bool
var1_is_time_
;
31
};
32
33
class
STEState
{
34
public
:
35
STEState
();
36
virtual
~STEState
();
37
STETransition
*
add_transition
();
38
int
ntrans_
;
39
STETransition
*
transitions_
;
40
};
41
42
class
StateTransitionEvent
{
43
public
:
44
StateTransitionEvent
(
int
nstate
,
Point_process
*);
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_
;
59
STEState
*
states_
;
60
Point_process
*
pnt_
;
61
int
activated_
;
62
};
63
64
65
#endif
HocCommand
Definition:
objcmd.h:15
STECondition
Definition:
netcon.h:243
STEState
Definition:
nrnste.h:33
STEState::~STEState
virtual ~STEState()
Definition:
nrnste.cpp:118
STEState::add_transition
STETransition * add_transition()
Definition:
nrnste.cpp:124
STEState::STEState
STEState()
Definition:
nrnste.cpp:113
STEState::ntrans_
int ntrans_
Definition:
nrnste.h:38
STEState::transitions_
STETransition * transitions_
Definition:
nrnste.h:39
STETransition
Definition:
nrnste.h:13
STETransition::~STETransition
virtual ~STETransition()
Definition:
nrnste.cpp:155
STETransition::stec_
STECondition * stec_
Definition:
nrnste.h:28
STETransition::ste_
StateTransitionEvent * ste_
Definition:
nrnste.h:27
STETransition::deactivate
void deactivate()
Definition:
netcvode.cpp:5569
STETransition::event
void event()
Definition:
nrnste.cpp:164
STETransition::hc_
HocCommand * hc_
Definition:
nrnste.h:26
STETransition::activate
void activate()
Definition:
netcvode.cpp:5558
STETransition::var1_is_time_
bool var1_is_time_
Definition:
nrnste.h:30
STETransition::value
virtual double value()
Definition:
nrnste.h:18
STETransition::var2_
double * var2_
Definition:
nrnste.h:25
STETransition::dest_
int dest_
Definition:
nrnste.h:29
STETransition::var1_
double * var1_
Definition:
nrnste.h:24
STETransition::STETransition
STETransition()
Definition:
nrnste.cpp:148
StateTransitionEvent
Definition:
nrnste.h:42
StateTransitionEvent::nstate_
int nstate_
Definition:
nrnste.h:57
StateTransitionEvent::istate_
int istate_
Definition:
nrnste.h:58
StateTransitionEvent::pnt_
Point_process * pnt_
Definition:
nrnste.h:60
StateTransitionEvent::states_
STEState * states_
Definition:
nrnste.h:59
StateTransitionEvent::~StateTransitionEvent
virtual ~StateTransitionEvent()
Definition:
nrnste.cpp:79
StateTransitionEvent::activated_
int activated_
Definition:
nrnste.h:61
StateTransitionEvent::deactivate
void deactivate()
Definition:
nrnste.cpp:84
StateTransitionEvent::transition
void transition(int src, int dest, double *var1, double *var2, HocCommand *)
Definition:
netcvode.cpp:5540
StateTransitionEvent::state
int state()
Definition:
nrnste.h:48
StateTransitionEvent::StateTransitionEvent
StateTransitionEvent(int nstate, Point_process *)
Definition:
nrnste.cpp:71
StateTransitionEvent::nstate
int nstate()
Definition:
nrnste.h:51
StateTransitionEvent::activate
void activate()
Definition:
nrnste.cpp:95
i
#define i
Definition:
md1redef.h:12
Point_process
Definition:
section.h:262
src
nrniv
nrnste.h