20 #ifndef FASTMICROSTEP_H_065FE1F7
21 #define FASTMICROSTEP_H_065FE1F7
25 #include "uscxml/config.h"
34 #include <boost/dynamic_bitset.hpp>
48 virtual InterpreterState
step(
size_t blockMs);
50 virtual bool isInState(
const std::string& stateId);
51 virtual std::list<XERCESC_NS::DOMElement*> getConfiguration();
52 void markAsCancelled();
57 Transition() : element(NULL), source(0), onTrans(NULL), type(0) {}
59 XERCESC_NS::DOMElement* element;
60 boost::dynamic_bitset<> conflicts;
61 boost::dynamic_bitset<> exitSet;
64 boost::dynamic_bitset<> target;
66 XERCESC_NS::DOMElement* onTrans;
77 State() : element(NULL), parent(0), documentOrder(0), doneData(NULL), type(0) {}
79 XERCESC_NS::DOMElement* element;
80 boost::dynamic_bitset<> completion;
81 boost::dynamic_bitset<> children;
82 boost::dynamic_bitset<> ancestors;
84 uint32_t documentOrder;
86 std::list<XERCESC_NS::DOMElement*> data;
87 std::list<XERCESC_NS::DOMElement*> invoke;
88 std::list<XERCESC_NS::DOMElement*> onEntry;
89 std::list<XERCESC_NS::DOMElement*> onExit;
90 XERCESC_NS::DOMElement* doneData;
97 std::map<const XERCESC_NS::DOMElement*, std::list<XERCESC_NS::DOMElement*> > exitSet;
100 virtual void init(XERCESC_NS::DOMElement* scxml);
102 std::list<XERCESC_NS::DOMElement*> getCompletion(
const XERCESC_NS::DOMElement* state);
104 unsigned char _flags;
105 std::map<std::string, int> _stateIds;
107 std::vector<State*> _states;
108 std::vector<Transition*> _transitions;
109 std::list<XERCESC_NS::DOMElement*> _globalScripts;
111 boost::dynamic_bitset<> _configuration;
112 boost::dynamic_bitset<> _invocations;
113 boost::dynamic_bitset<> _history;
114 boost::dynamic_bitset<> _initializedData;
116 std::set<boost::dynamic_bitset<> > _microstepConfigurations;
119 XERCESC_NS::DOMElement* _scxml;
128 std::list<XERCESC_NS::DOMElement*> getHistoryCompletion(
const XERCESC_NS::DOMElement* state);
129 void resortStates(XERCESC_NS::DOMElement* node,
const X& xmlPrefix);
131 bool conflictsCached(
const XERCESC_NS::DOMElement* t1,
const XERCESC_NS::DOMElement* t2,
const XERCESC_NS::DOMElement* root);
133 std::list<XERCESC_NS::DOMElement*> getExitSetCached(
const XERCESC_NS::DOMElement* transition,
134 const XERCESC_NS::DOMElement* root);
138 #ifdef USCXML_VERBOSE
139 void printStateNames(
const boost::dynamic_bitset<>& bitset);
Definition: FastMicroStep.h:42
Definition: MicroStepImpl.h:69
Definition: Breakpoint.cpp:26
Definition: MicroStepImpl.h:40
virtual void reset()
Reset state machine.
Definition: FastMicroStep.cpp:962
virtual InterpreterState step(size_t blockMs)
Definition: FastMicroStep.cpp:446
Definition: FastMicroStep.h:55
virtual void init(XERCESC_NS::DOMElement *scxml)
Definition: FastMicroStep.cpp:187
Definition: FastMicroStep.h:75
Definition: FastMicroStep.h:95