IOProcessorImpl.h
Go to the documentation of this file.
1 
20 #ifndef IOPROCESSORIMPL_H_92E6AA44
21 #define IOPROCESSORIMPL_H_92E6AA44
22 
23 
24 #include "uscxml/Common.h"
27 #include "uscxml/messages/Event.h"
28 
29 namespace uscxml {
30 
36 class USCXML_API IOProcessorCallbacks {
37 public:
38  virtual ~IOProcessorCallbacks() {}
39  virtual const std::string& getName() = 0;
40  virtual const std::string& getSessionId() = 0;
41  virtual void enqueueInternal(const Event& event) = 0;
42  virtual void enqueueExternal(const Event& event) = 0;
43  virtual void enqueueAtInvoker(const std::string& invokeId, const Event& event) = 0;
44  virtual void enqueueAtParent(const Event& event) = 0;
45  virtual Logger getLogger() = 0;
46 
47 };
48 
54 class USCXML_API IOProcessorImpl : public EventHandlerImpl {
55 public:
56 
62  virtual std::shared_ptr<IOProcessorImpl> create(IOProcessorCallbacks* callbacks) = 0;
63 
69  virtual void eventFromSCXML(const std::string& target, const Event& event) = 0;
70 
76  virtual bool isValidTarget(const std::string& target) = 0;
77 
78 protected:
86  void eventToSCXML(Event& event, const std::string& type, const std::string& origin, bool internal = false);
87 
88  IOProcessorCallbacks* _callbacks;
89 };
90 
91 }
92 
93 
94 #endif /* end of include guard: IOPROCESSORIMPL_H_92E6AA44 */
Definition: Breakpoint.cpp:26
virtual ~IOProcessorCallbacks()
silence virtual destructor warning from swig
Definition: IOProcessorImpl.h:38
Common base class for invokers and i/o processors.
Definition: EventHandler.h:41
Abstract base class for IOProcessors implementations.
Definition: IOProcessorImpl.h:54
Definition: Event.h:94
Definition: Logging.h:69
Callbacks available for every IO processor.
Definition: IOProcessorImpl.h:36