StateNode Class Reference#include <StateNode.h>
Inheritance diagram for StateNode:
[legend]List of all members.
Detailed Description
Recursive data structure - both a state machine controller as well as a node within a state machine itself.
Override setup() to setup your own Transition and StateNode network.
Definition at line 12 of file StateNode.h.
|
Public Member Functions |
| StateNode () __attribute__((deprecated)) |
| deprecated, behavior constructors should take a name argument (which by default should be the name of the type of the class)
|
| StateNode (const std::string &name, StateNode *p=NULL) |
| constructor, pass a name to use and the parent node if applicable (usually 'this' within setup())
|
virtual | ~StateNode () |
| destructor, removes references to its outgoing transitions (be careful of incoming ones - they're still around!), and calls RemoveReference() on subnodes
|
virtual void | addTransition (Transition *trans) |
| Adds the specified StateTransition to the transition table.
|
std::vector< Transition * > & | getTransitions () |
| Returns the std::vector of transitions so you can modify them yourself if need be.
|
virtual StateNode * | addNode (StateNode *node) |
| Adds a StateNode to nodes so it can be automatically dereferenced later, returns what it's passed (for convenience), calls AddReference() on node. Also sets the node's parent to #this if it is null.
|
std::vector< StateNode * > & | getNodes () |
| Returns the std::vector of nodes so you can modify them yourself if need be.
|
void | setRetain (bool f) |
| Sets the retain flag - if not retained, will RemoveReference() subnodes upon DoStop() and recreate them on DoStart (by calling setup()) - may be too expensive to be worth saving memory...
|
virtual void | DoStart () |
| Transitions should call this when you are entering the state, so it can enable its transitions.
|
virtual void | setup () |
| This is called by DoStart() when you should setup the network of subnodes.
|
virtual void | DoStop () |
| Transitions should call this when you are leaving the state, so it can disable its transitions.
|
virtual void | teardown () |
| This is called by DoStop() when you should destruct subnodes.
|
Protected Member Functions |
| StateNode (const std::string &classname, const std::string &name, StateNode *p=NULL) |
| constructor, pass a name to use and the parent node if applicable (usually 'this' within setup())
|
virtual void | transitionTo (StateNode *n) |
| called by a subnode when it is being DoStart()'ed
|
virtual void | transitionFrom (StateNode *n) |
| called by a subnode when it is being DoStop()'ed
|
Protected Attributes |
StateNode * | parent |
| pointer to the machine that contains this node
|
std::vector< Transition * > | transitions |
| a vector of outgoing transitions
|
bool | issetup |
| this is set to true if the network has been setup but not destroyed (i.e. don't need to call setupSubNodes again)
|
bool | retain |
| this is set to true if the network should be retained between activations. Otherwise it's dereferenced upon DoStop(). (or at least RemoveReference() is called on subnodes)
|
std::vector< StateNode * > | nodes |
| vector of StateNodes, just so they can be dereferenced again on DoStop() (unless retained) or ~StateNode()
|
Private Member Functions |
| StateNode (const StateNode &node) |
| don't call this
|
StateNode | operator= (const StateNode &node) |
| don't call this
|
Constructor & Destructor Documentation
|
deprecated, behavior constructors should take a name argument (which by default should be the name of the type of the class)
- Deprecated:
- , behavior constructors should take a name argument (which by default should be the name of the type of the class)
Definition at line 6 of file StateNode.cc. |
StateNode::StateNode |
( |
const std::string & |
name, |
|
|
StateNode * |
p = NULL |
|
) |
[inline] |
|
|
constructor, pass a name to use and the parent node if applicable (usually 'this' within setup())
Definition at line 18 of file StateNode.h. |
|
destructor, removes references to its outgoing transitions (be careful of incoming ones - they're still around!), and calls RemoveReference() on subnodes
Definition at line 8 of file StateNode.cc. |
StateNode::StateNode |
( |
const std::string & |
classname, |
|
|
const std::string & |
name, |
|
|
StateNode * |
p = NULL |
|
) |
[inline, protected] |
|
|
constructor, pass a name to use and the parent node if applicable (usually 'this' within setup())
Definition at line 52 of file StateNode.h. |
StateNode::StateNode |
( |
const StateNode & |
node |
) |
[private] |
|
Member Function Documentation
void StateNode::addTransition |
( |
Transition * |
trans |
) |
[virtual] |
|
void StateNode::DoStart |
( |
|
) |
[virtual] |
|
|
Transitions should call this when you are entering the state, so it can enable its transitions.
Reimplemented from BehaviorBase.
Reimplemented in BanditMachine, BanditMachine::PressNode, BanditMachine::DecideNode, BanditMachine::WaitNode, ExploreMachine, PaceTargetsMachine, WalkToTargetMachine, GroupNode, HeadPointerNode, LedNode, OutputNode, PlayMotionSequenceNode< SIZE >, SoundNode, TailWagNode, and WalkNode.
Definition at line 32 of file StateNode.cc.
Referenced by WalkToTargetMachine::DoStart(), WalkNode::DoStart(), TailWagNode::DoStart(), SoundNode::DoStart(), PlayMotionSequenceNode< SIZE >::DoStart(), PaceTargetsMachine::DoStart(), OutputNode::DoStart(), LedNode::DoStart(), HeadPointerNode::DoStart(), GroupNode::DoStart(), ExploreMachine::DoStart(), BanditMachine::WaitNode::DoStart(), BanditMachine::DecideNode::DoStart(), BanditMachine::PressNode::DoStart(), and BanditMachine::DoStart(). |
void StateNode::DoStop |
( |
|
) |
[virtual] |
|
|
Transitions should call this when you are leaving the state, so it can disable its transitions.
Reimplemented from BehaviorBase.
Reimplemented in BanditMachine, BanditMachine::PressNode, BanditMachine::WaitNode, ExploreMachine, WalkToTargetMachine, HeadPointerNode, LedNode, PlayMotionSequenceNode< SIZE >, SoundNode, TailWagNode, and WalkNode.
Definition at line 47 of file StateNode.cc.
Referenced by OutputNode::DoStart(), BanditMachine::DecideNode::DoStart(), WalkToTargetMachine::DoStop(), WalkNode::DoStop(), TailWagNode::DoStop(), SoundNode::DoStop(), PlayMotionSequenceNode< SIZE >::DoStop(), LedNode::DoStop(), HeadPointerNode::DoStop(), ExploreMachine::DoStop(), BanditMachine::WaitNode::DoStop(), BanditMachine::PressNode::DoStop(), and BanditMachine::DoStop(). |
std::vector<StateNode*>& StateNode::getNodes |
( |
|
) |
[inline] |
|
|
Returns the std::vector of nodes so you can modify them yourself if need be.
Definition at line 33 of file StateNode.h. |
std::vector<Transition*>& StateNode::getTransitions |
( |
|
) |
[inline] |
|
|
Returns the std::vector of transitions so you can modify them yourself if need be.
Definition at line 27 of file StateNode.h. |
void StateNode::setRetain |
( |
bool |
f |
) |
[inline] |
|
virtual void StateNode::setup |
( |
|
) |
[inline, virtual] |
|
virtual void StateNode::teardown |
( |
|
) |
[inline, virtual] |
|
void StateNode::transitionFrom |
( |
StateNode * |
n |
) |
[protected, virtual] |
|
void StateNode::transitionTo |
( |
StateNode * |
n |
) |
[protected, virtual] |
|
Member Data Documentation
The documentation for this class was generated from the following files:
|