summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Message.h
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-09-02 21:38:10 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-09-02 21:38:10 (GMT)
commit7938e286967597c7168b855b7e3fdfbd9b949e0e (patch)
treebc5d9bfb80a07ec80b36dc025b3fac9f3ca03ec4 /src/uscxml/Message.h
parenta874a181add7b292e52140f8c753f663a4cb5a87 (diff)
downloaduscxml-7938e286967597c7168b855b7e3fdfbd9b949e0e.zip
uscxml-7938e286967597c7168b855b7e3fdfbd9b949e0e.tar.gz
uscxml-7938e286967597c7168b855b7e3fdfbd9b949e0e.tar.bz2
New file element for executable content
Diffstat (limited to 'src/uscxml/Message.h')
-rw-r--r--src/uscxml/Message.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/uscxml/Message.h b/src/uscxml/Message.h
index 5ccab57..e561c59 100644
--- a/src/uscxml/Message.h
+++ b/src/uscxml/Message.h
@@ -10,6 +10,7 @@
#include <DOM/Document.hpp>
#include <DOM/io/Stream.hpp>
+#include <boost/shared_ptr.hpp>
#include <inttypes.h>
#define TAGNAME(elem) ((Arabica::DOM::Element<std::string>)elem).getTagName()
@@ -19,16 +20,25 @@
namespace uscxml {
+class Blob {
+public:
+ ~Blob();
+ Blob(size_t size);
+ Blob(void* data, size_t size, bool adopt = false);
+ char* _data;
+ size_t _size;
+};
+
class Data {
public:
enum Type {
VERBATIM,
INTERPRETED,
- BINARY,
};
Data() : type(INTERPRETED) {}
Data(const std::string& atom_, Type type_ = INTERPRETED) : atom(atom_), type(type_) {}
+ Data(const char* data, size_t size, bool adopt);
explicit Data(const Arabica::DOM::Node<std::string>& dom);
virtual ~Data() {}
@@ -109,6 +119,7 @@ protected:
std::map<std::string, Data> compound;
std::list<Data> array;
std::string atom;
+ boost::shared_ptr<Blob> binary;
Type type;
protected: