#include "uscxml/Interpreter.h" using namespace uscxml; // -- Issue 56 on github int main(int argc, char** argv) { std::deque messageQueue; messageQueue.push_back("a"); messageQueue.push_back("b"); messageQueue.push_back("c"); messageQueue.push_back("d"); const char* scxmlContent = "" "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ""; std::string msg; uscxml::Interpreter scxml = uscxml::Interpreter::fromXML(scxmlContent, ""); scxml.addMonitor(new StateTransitionMonitor()); uscxml::InterpreterState state; // assume initial stable configuration do { state = scxml.step(); } while(state > 0); while(state != uscxml::USCXML_FINISHED && !messageQueue.empty()) { msg = messageQueue.front(); messageQueue.pop_front(); scxml.receive(uscxml::Event(msg, uscxml::Event::EXTERNAL)); // step to next stable configuration do { state = scxml.step(); } while(state > 0); } return EXIT_SUCCESS; }