diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-09-02 21:38:10 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-09-02 21:38:10 (GMT) |
commit | 7938e286967597c7168b855b7e3fdfbd9b949e0e (patch) | |
tree | bc5d9bfb80a07ec80b36dc025b3fac9f3ca03ec4 /src/uscxml/plugins/element/file/FileElement.h | |
parent | a874a181add7b292e52140f8c753f663a4cb5a87 (diff) | |
download | uscxml-7938e286967597c7168b855b7e3fdfbd9b949e0e.zip uscxml-7938e286967597c7168b855b7e3fdfbd9b949e0e.tar.gz uscxml-7938e286967597c7168b855b7e3fdfbd9b949e0e.tar.bz2 |
New file element for executable content
Diffstat (limited to 'src/uscxml/plugins/element/file/FileElement.h')
-rw-r--r-- | src/uscxml/plugins/element/file/FileElement.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/uscxml/plugins/element/file/FileElement.h b/src/uscxml/plugins/element/file/FileElement.h new file mode 100644 index 0000000..b9e43bc --- /dev/null +++ b/src/uscxml/plugins/element/file/FileElement.h @@ -0,0 +1,65 @@ +#ifndef FILEELEMENT_H_VJ3JIMEJ +#define FILEELEMENT_H_VJ3JIMEJ + +#include <uscxml/Interpreter.h> +#include <sys/stat.h> + +#ifdef BUILD_AS_PLUGINS +#include "uscxml/plugins/Plugins.h" +#endif + +namespace uscxml { + +class FileElement : public ExecutableContentImpl { +public: + enum Operation { + READ, + WRITE, + APPEND + }; + + enum Type { + XML, + JSON, + TEXT, + BINARY + }; + + FileElement() { + _sandBoxed = true; + } + virtual ~FileElement(); + boost::shared_ptr<ExecutableContentImpl> create(InterpreterImpl* interpreter); + + std::string getLocalName() { + return "file"; + } + + std::string getNamespace() { + return "http://www.w3.org/2005/07/scxml"; + } + + bool processChildren() { + return false; + } + + void enterElement(const Arabica::DOM::Node<std::string>& node); + void exitElement(const Arabica::DOM::Node<std::string>& node); + +protected: + + bool _sandBoxed; + std::string _givenUrl; + URL _actualUrl; + std::string _filename; + Operation _operation; + Type _type; +}; + +#ifdef BUILD_AS_PLUGINS +PLUMA_INHERIT_PROVIDER(FileElement, ExecutableContentImpl); +#endif + +} + +#endif /* end of include guard: FILEELEMENT_H_VJ3JIMEJ */ |