summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Message.h
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2012-12-20 21:34:09 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2012-12-20 21:34:09 (GMT)
commit498f6f80e9ca01236ca1491596875ab7eb4cd8c3 (patch)
treee627ae19475bb93a98dfa50db1950f6e3403f569 /src/uscxml/Message.h
parentd779abe6ff76a78f92d229fcf1f006f5cf1f9295 (diff)
downloaduscxml-498f6f80e9ca01236ca1491596875ab7eb4cd8c3.zip
uscxml-498f6f80e9ca01236ca1491596875ab7eb4cd8c3.tar.gz
uscxml-498f6f80e9ca01236ca1491596875ab7eb4cd8c3.tar.bz2
Refactoring finished
Support datamodels, invokers and ioprocessors as plugins Comply to HTTP1.1 by sending host header field Started prolog datamodel
Diffstat (limited to 'src/uscxml/Message.h')
-rw-r--r--src/uscxml/Message.h155
1 files changed, 80 insertions, 75 deletions
diff --git a/src/uscxml/Message.h b/src/uscxml/Message.h
index ecd2bf0..1644869 100644
--- a/src/uscxml/Message.h
+++ b/src/uscxml/Message.h
@@ -19,105 +19,110 @@ namespace uscxml {
class Data {
public:
- enum Type {
- VERBATIM,
- INTERPRETED
- };
-
- Data() {}
- Data(const std::string& atom_, Type type_ = INTERPRETED) : atom(atom_), type(type_) {}
- Data(const Arabica::DOM::Node<std::string>& dom);
- virtual ~Data() {}
-
- static Data fromXML(const std::string& xmlString);
- Arabica::DOM::Document<std::string> toDocument();
- std::string toXMLString() {
- std::stringstream ss;
- ss << toDocument();
- return ss.str();
- }
-
- std::map<std::string, Data> compound;
- std::list<Data> array;
- std::string atom;
- Type type;
+ enum Type {
+ VERBATIM,
+ INTERPRETED
+ };
+
+ Data() {}
+ Data(const std::string& atom_, Type type_ = INTERPRETED) : atom(atom_), type(type_) {}
+ Data(const Arabica::DOM::Node<std::string>& dom);
+ virtual ~Data() {}
+
+ static Data fromXML(const std::string& xmlString);
+ Arabica::DOM::Document<std::string> toDocument();
+ std::string toXMLString() {
+ std::stringstream ss;
+ ss << toDocument();
+ return ss.str();
+ }
+
+ std::map<std::string, Data> compound;
+ std::list<Data> array;
+ std::string atom;
+ Type type;
protected:
- Arabica::DOM::Document<std::string> toNode(const Arabica::DOM::Document<std::string>& factory, const Data& data);
+ Arabica::DOM::Document<std::string> toNode(const Arabica::DOM::Document<std::string>& factory, const Data& data);
#ifndef SWIGJAVA
- friend std::ostream& operator<< (std::ostream& os, const Data& data);
+ friend std::ostream& operator<< (std::ostream& os, const Data& data);
#endif
};
class Event : public Data {
public:
- enum Type {
- PLATFORM,
- INTERNAL,
- EXTERNAL
- };
-
- Event() : type(INTERNAL) {}
- Event(const Arabica::DOM::Node<std::string>& xmlString) : type(INTERNAL) {};
-
- std::string name;
- Type type;
- std::string origin;
- std::string origintype;
+ enum Type {
+ PLATFORM,
+ INTERNAL,
+ EXTERNAL
+ };
+
+ Event() : type(INTERNAL) {}
+ Event(const Arabica::DOM::Node<std::string>& xmlString) : type(INTERNAL) {};
+
+ std::string name;
+ Type type;
+ std::string origin;
+ std::string origintype;
// Arabica::DOM::Node<std::string> dom;
- std::string sendid;
- std::string invokeid;
+ std::string sendid;
+ std::string invokeid;
- static Event fromXML(const std::string& xmlString);
- Arabica::DOM::Document<std::string> toDocument();
- std::string toXMLString() {
- std::stringstream ss;
- ss << toDocument();
- return ss.str();
- }
+ static Event fromXML(const std::string& xmlString);
+ Arabica::DOM::Document<std::string> toDocument();
+ std::string toXMLString() {
+ std::stringstream ss;
+ ss << toDocument();
+ return ss.str();
+ }
#ifndef SWIGJAVA
- friend std::ostream& operator<< (std::ostream& os, const Event& event);
+ friend std::ostream& operator<< (std::ostream& os, const Event& event);
#endif
};
class InvokeRequest : public Event {
public:
- std::string type;
- std::string src;
- std::string namelist;
- bool autoForward;
- std::map<std::string, std::list<std::string> > params;
- std::string content;
-
- static InvokeRequest fromXML(const std::string& xmlString);
- Arabica::DOM::Document<std::string> toDocument();
- std::string toXMLString() {
- std::stringstream ss;
- ss << toDocument();
- return ss.str();
- }
+ std::string type;
+ std::string src;
+ std::string namelist;
+ typedef std::map<std::string, std::string> namelist_t;
+ bool autoForward;
+ std::multimap<std::string, std::string> params;
+ typedef std::multimap<std::string, std::string> params_t;
+
+ std::string content;
+
+ static InvokeRequest fromXML(const std::string& xmlString);
+ Arabica::DOM::Document<std::string> toDocument();
+ std::string toXMLString() {
+ std::stringstream ss;
+ ss << toDocument();
+ return ss.str();
+ }
};
class SendRequest : public Event {
public:
- std::string target;
- std::string type;
- uint32_t delayMs;
- std::map<std::string, std::string> namelist;
- std::map<std::string, std::list<std::string> > params;
- std::string content;
-
- static SendRequest fromXML(const std::string& xmlString);
- Arabica::DOM::Document<std::string> toDocument();
- std::string toXMLString() {
- std::stringstream ss;
- ss << toDocument();
+ std::string target;
+ std::string type;
+ uint32_t delayMs;
+ std::map<std::string, std::string> namelist;
+ typedef std::map<std::string, std::string> namelist_t;
+ std::multimap<std::string, std::string> params;
+ typedef std::multimap<std::string, std::string> params_t;
+ std::string content;
+
+ static SendRequest fromXML(const std::string& xmlString);
+ Arabica::DOM::Document<std::string> toDocument();
+ std::string toXMLString() {
+ std::stringstream ss;
+ ss << toDocument();
// std::cout << ss.str() << std::endl;
- return ss.str();
- }
+ return ss.str();
+ }
};