ExecutableContentImpl.h
Go to the documentation of this file.
1 
20 #ifndef EXECUTABLECONTENTIMPL_H_CCE9F02D
21 #define EXECUTABLECONTENTIMPL_H_CCE9F02D
22 
23 #include "uscxml/config.h"
24 #include "uscxml/Common.h"
25 
26 #include <xercesc/dom/DOM.hpp>
27 #include <string>
28 #include <memory>
29 #include <sstream>
30 
31 namespace uscxml {
32 
33 class InterpreterImpl;
34 
40 class USCXML_API ExecutableContentImpl {
41 public:
43  virtual ~ExecutableContentImpl() {};
44  virtual std::shared_ptr<ExecutableContentImpl> create(InterpreterImpl* interpreter) = 0;
45 
46  virtual void setInterpreter(InterpreterImpl* interpreter) {
47  _interpreter = interpreter;
48  }
49 
50  virtual std::string getLocalName() = 0;
51  virtual std::string getNamespace() {
52  return "http://www.w3.org/2005/07/scxml";
53  }
54  virtual void enterElement(XERCESC_NS::DOMElement* node) = 0;
55  virtual void exitElement(XERCESC_NS::DOMElement* node) = 0;
56  virtual bool processChildren() = 0;
57 
58 protected:
59  InterpreterImpl* _interpreter;
60 };
61 
62 
63 }
64 
65 #endif /* end of include guard: EXECUTABLECONTENTIMPL_H_CCE9F02D */
Definition: InterpreterIssue.cpp:33
Definition: InterpreterImpl.h:49
virtual std::string getNamespace()
Definition: ExecutableContentImpl.h:51
Abstract base class fo all elements of executable content.
Definition: ExecutableContentImpl.h:40