20 #ifndef FASTMICROSTEP_H_065FE1F7
21 #define FASTMICROSTEP_H_065FE1F7
25 #include "uscxml/config.h"
32 #include <boost/dynamic_bitset.hpp>
45 virtual InterpreterState
step(
bool blocking);
47 virtual bool isInState(
const std::string& stateId);
48 virtual std::list<XERCESC_NS::DOMElement*> getConfiguration();
49 void markAsCancelled();
54 Transition() : element(NULL), source(0), onTrans(NULL), type(0) {}
56 XERCESC_NS::DOMElement* element;
57 boost::dynamic_bitset<> conflicts;
58 boost::dynamic_bitset<> exitSet;
61 boost::dynamic_bitset<> target;
63 XERCESC_NS::DOMElement* onTrans;
74 State() : element(NULL), parent(0), documentOrder(0), doneData(NULL), type(0) {}
76 XERCESC_NS::DOMElement* element;
77 boost::dynamic_bitset<> completion;
78 boost::dynamic_bitset<> children;
79 boost::dynamic_bitset<> ancestors;
81 uint32_t documentOrder;
83 std::list<XERCESC_NS::DOMElement*> data;
84 std::list<XERCESC_NS::DOMElement*> invoke;
85 std::list<XERCESC_NS::DOMElement*> onEntry;
86 std::list<XERCESC_NS::DOMElement*> onExit;
87 XERCESC_NS::DOMElement* doneData;
92 virtual void init(XERCESC_NS::DOMElement* scxml);
94 std::list<XERCESC_NS::DOMElement*> getCompletion(
const XERCESC_NS::DOMElement* state);
97 std::map<std::string, int> _stateIds;
99 std::vector<State*> _states;
100 std::vector<Transition*> _transitions;
101 std::list<XERCESC_NS::DOMElement*> _globalScripts;
103 boost::dynamic_bitset<> _configuration;
104 boost::dynamic_bitset<> _invocations;
105 boost::dynamic_bitset<> _history;
106 boost::dynamic_bitset<> _initializedData;
108 std::set<boost::dynamic_bitset<> > _microstepConfigurations;
111 XERCESC_NS::DOMElement* _scxml;
120 std::list<XERCESC_NS::DOMElement*> getHistoryCompletion(
const XERCESC_NS::DOMElement* state);
121 void resortStates(XERCESC_NS::DOMNode* node,
const X& xmlPrefix);
125 #ifdef USCXML_VERBOSE
126 void printStateNames(
const boost::dynamic_bitset<>& bitset);
Definition: FastMicroStep.h:40
Definition: MicroStepImpl.h:67
Definition: InterpreterIssue.cpp:33
virtual InterpreterState step(bool blocking)
Definition: FastMicroStep.cpp:401
Definition: MicroStepImpl.h:40
virtual void reset()
Reset state machine.
Definition: FastMicroStep.cpp:915
Definition: FastMicroStep.h:52
virtual void init(XERCESC_NS::DOMElement *scxml)
Definition: FastMicroStep.cpp:158
Definition: FastMicroStep.h:72