diff options
author | Stefan Radomski <github@mintwerk.de> | 2017-01-08 21:59:18 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2017-01-08 21:59:18 (GMT) |
commit | 030f3b483f54dbef6e164194a1771ef5b346312b (patch) | |
tree | 3f5b949b5ffed83d0b41a95d9fd3cfafd17cab2d /src/uscxml/interpreter/FastMicroStep.h | |
parent | 1ab8b9a0dcaa131b8cccc735a1794ce39b351715 (diff) | |
download | uscxml-030f3b483f54dbef6e164194a1771ef5b346312b.zip uscxml-030f3b483f54dbef6e164194a1771ef5b346312b.tar.gz uscxml-030f3b483f54dbef6e164194a1771ef5b346312b.tar.bz2 |
Support for caching values on filesystem
Use USCXML_NOCACHE_FILES=YES to prevent, I will make this a build flag
Diffstat (limited to 'src/uscxml/interpreter/FastMicroStep.h')
-rw-r--r-- | src/uscxml/interpreter/FastMicroStep.h | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/src/uscxml/interpreter/FastMicroStep.h b/src/uscxml/interpreter/FastMicroStep.h index 810b793..db3e724 100644 --- a/src/uscxml/interpreter/FastMicroStep.h +++ b/src/uscxml/interpreter/FastMicroStep.h @@ -33,6 +33,12 @@ #include <boost/dynamic_bitset.hpp> +#ifdef _WIN32 +#define BITSET_BLOCKTYPE size_t +#else +#define BITSET_BLOCKTYPE +#endif + namespace uscxml { /** @@ -57,11 +63,11 @@ protected: Transition() : element(NULL), source(0), onTrans(NULL), type(0) {} XERCESC_NS::DOMElement* element; - boost::dynamic_bitset<> conflicts; - boost::dynamic_bitset<> exitSet; + boost::dynamic_bitset<BITSET_BLOCKTYPE> conflicts; + boost::dynamic_bitset<BITSET_BLOCKTYPE> exitSet; uint32_t source; - boost::dynamic_bitset<> target; + boost::dynamic_bitset<BITSET_BLOCKTYPE> target; XERCESC_NS::DOMElement* onTrans; @@ -77,9 +83,9 @@ protected: State() : element(NULL), parent(0), documentOrder(0), doneData(NULL), type(0) {} XERCESC_NS::DOMElement* element; - boost::dynamic_bitset<> completion; - boost::dynamic_bitset<> children; - boost::dynamic_bitset<> ancestors; + boost::dynamic_bitset<BITSET_BLOCKTYPE> completion; + boost::dynamic_bitset<BITSET_BLOCKTYPE> children; + boost::dynamic_bitset<BITSET_BLOCKTYPE> ancestors; uint32_t parent; uint32_t documentOrder; @@ -108,12 +114,12 @@ protected: std::vector<Transition*> _transitions; std::list<XERCESC_NS::DOMElement*> _globalScripts; - boost::dynamic_bitset<> _configuration; - boost::dynamic_bitset<> _invocations; - boost::dynamic_bitset<> _history; - boost::dynamic_bitset<> _initializedData; + boost::dynamic_bitset<BITSET_BLOCKTYPE> _configuration; + boost::dynamic_bitset<BITSET_BLOCKTYPE> _invocations; + boost::dynamic_bitset<BITSET_BLOCKTYPE> _history; + boost::dynamic_bitset<BITSET_BLOCKTYPE> _initializedData; - std::set<boost::dynamic_bitset<> > _microstepConfigurations; + std::set<boost::dynamic_bitset<BITSET_BLOCKTYPE> > _microstepConfigurations; Binding _binding; XERCESC_NS::DOMElement* _scxml; @@ -130,13 +136,16 @@ private: bool conflictsCached(const XERCESC_NS::DOMElement* t1, const XERCESC_NS::DOMElement* t2, const XERCESC_NS::DOMElement* root); ///< overrides implementation Predicates::conflicts for speed + std::string toBase64(const boost::dynamic_bitset<BITSET_BLOCKTYPE>& bitset); + boost::dynamic_bitset<BITSET_BLOCKTYPE> fromBase64(const std::string& encoded); + std::list<XERCESC_NS::DOMElement*> getExitSetCached(const XERCESC_NS::DOMElement* transition, const XERCESC_NS::DOMElement* root); CachedPredicates _cache; #ifdef USCXML_VERBOSE - void printStateNames(const boost::dynamic_bitset<>& bitset); + void printStateNames(const boost::dynamic_bitset<BITSET_BLOCKTYPE>& bitset); #endif }; |