diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2012-12-20 21:34:09 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2012-12-20 21:34:09 (GMT) |
commit | 498f6f80e9ca01236ca1491596875ab7eb4cd8c3 (patch) | |
tree | e627ae19475bb93a98dfa50db1950f6e3403f569 /src/uscxml/Message.h | |
parent | d779abe6ff76a78f92d229fcf1f006f5cf1f9295 (diff) | |
download | uscxml-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.h | 155 |
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(); + } }; |