1 #include <Poco/JSON/Object.h>
2 #include <Poco/JSON/Array.h>
3 #include <Poco/JSON/JSON.h>
4 #include <Poco/JSON/Stringifier.h>
5 #include <Poco/JSON/Parser.h>
6 #include <Poco/JSON/JSONException.h>
7 #include <Poco/Dynamic/Var.h>
9 #include <Poco/Base64Encoder.h>
10 #include <Poco/Base64Decoder.h>
11 #include <Poco/StreamCopier.h>
43 Poco::JSON::Object::Ptr obj =
new Poco::JSON::Object();
48 std::stringstream ostr;
49 Poco::JSON::Stringifier::stringify(obj, ostr);
52 catch(std::exception& e)
63 messageType = SphinxInputJsonMessage::MessageType::mtSearch;
69 Poco::JSON::Parser parser;
70 Poco::Dynamic::Var res = parser.parse(json);
71 Poco::JSON::Object::Ptr obj = res.extract<Poco::JSON::Object::Ptr>();
74 messageType =
static_cast<MessageType>(convertVarToNumeric<unsigned long>(tmp,
static_cast<unsigned long>(messageType)));
78 messageBody = tmp.convert<std::string>();
80 if (messageBody.empty())
81 throw Poco::Exception(
"Invalid body. Empty message.");
84 messageTTL = convertVarToNumeric<unsigned long>(tmp, messageTTL);
86 catch(Poco::JSON::JSONException& e)
92 catch(Poco::Exception& e)
98 catch(std::exception& e)
110 is.seekg(0, std::ios::end);
111 json.resize(is.tellg());
112 is.seekg(0, std::ios::beg);
113 is.read(const_cast<char*>(json.c_str()), json.size());
121 if (const_cast<SphinxInputJsonMessage&>(jsonHandler).serialize(json))