summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/element/mmi/MMIEvents.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/plugins/element/mmi/MMIEvents.h')
-rw-r--r--src/uscxml/plugins/element/mmi/MMIEvents.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/uscxml/plugins/element/mmi/MMIEvents.h b/src/uscxml/plugins/element/mmi/MMIEvents.h
new file mode 100644
index 0000000..3a31f2a
--- /dev/null
+++ b/src/uscxml/plugins/element/mmi/MMIEvents.h
@@ -0,0 +1,58 @@
+#ifndef MMIEVENTS_H_QHO6VT3M
+#define MMIEVENTS_H_QHO6VT3M
+
+#include <uscxml/Interpreter.h>
+
+#ifdef BUILD_AS_PLUGINS
+#include "uscxml/plugins/Plugins.h"
+#endif
+
+#define ELEMENT_CREATOR(elementName) \
+boost::shared_ptr<ExecutableContentImpl> create(InterpreterImpl* interpreter) { \
+ boost::shared_ptr<elementName> element = boost::shared_ptr<elementName>(new elementName()); \
+ element->_interpreter = interpreter; \
+ return element; \
+}
+
+#define ELEMENT_MMI_CLASS(elementName) \
+class elementName##Element : public ExecutableContentImpl { \
+public:\
+ elementName##Element () {}\
+ virtual ~elementName##Element () {}\
+ ELEMENT_CREATOR(elementName##Element);\
+ std::string getLocalName() { return "elementName"; }\
+ std::string getNamespace() { return "http://www.w3.org/2008/04/mmi-arch"; }\
+ bool processChildren() { return false; }\
+ void enterElement(const Arabica::DOM::Node<std::string>& node);\
+ void exitElement(const Arabica::DOM::Node<std::string>& node) {}\
+};
+
+namespace uscxml {
+
+ELEMENT_MMI_CLASS(PrepareRequest);
+ELEMENT_MMI_CLASS(StartRequest);
+ELEMENT_MMI_CLASS(PauseRequest);
+ELEMENT_MMI_CLASS(ResumeRequest);
+ELEMENT_MMI_CLASS(CancelRequest);
+ELEMENT_MMI_CLASS(ClearContextRequest);
+ELEMENT_MMI_CLASS(StatusRequest);
+ELEMENT_MMI_CLASS(NewContextResponse);
+ELEMENT_MMI_CLASS(PrepareResponse);
+ELEMENT_MMI_CLASS(StartResponse);
+ELEMENT_MMI_CLASS(PauseResponse);
+ELEMENT_MMI_CLASS(ResumeResponse);
+ELEMENT_MMI_CLASS(CancelResponse);
+ELEMENT_MMI_CLASS(ClearContextResponse);
+ELEMENT_MMI_CLASS(StatusResponse);
+ELEMENT_MMI_CLASS(DoneNotification);
+ELEMENT_MMI_CLASS(NewContextRequest);
+ELEMENT_MMI_CLASS(ExtensionNotification);
+
+#ifdef BUILD_AS_PLUGINS
+PLUMA_INHERIT_PROVIDER(FetchElement, ExecutableContentImpl);
+#endif
+
+}
+
+
+#endif /* end of include guard: MMIEVENTS_H_QHO6VT3M */