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>
28 sessionOptions = std::move(std::forward<SessionOptions>(sessionOptions_));
33 sessionOptions.
clear();
45 Poco::JSON::Object::Ptr obj =
new Poco::JSON::Object();
47 Poco::JSON::Object::Ptr pSessionOptions =
new Poco::JSON::Object();
56 Poco::JSON::Array::Ptr pEnviroment =
new Poco::JSON::Array();
57 for (
size_t i=0;i<sessionOptions.
environments.size();++i)
59 Poco::JSON::Object::Ptr pEnviromentElem =
new Poco::JSON::Object();
61 pEnviroment->add(pEnviromentElem);
69 Poco::JSON::Array::Ptr pFiles =
new Poco::JSON::Array();
72 for (
size_t i=0;i<filesCount;++i)
74 Poco::JSON::Object::Ptr pFileElem =
new Poco::JSON::Object();
78 pFiles->add(pFileElem);
82 std::stringstream ostr;
83 Poco::JSON::Stringifier::stringify(obj, ostr);
88 catch(std::exception& e)
105 Poco::JSON::Parser parser;
106 Poco::Dynamic::Var res = parser.parse(json);
107 Poco::JSON::Object::Ptr obj = res.extract<Poco::JSON::Object::Ptr>();
109 Poco::Dynamic::Var tmp;
111 if (!pSessionOptions.isNull())
117 sessionOptions.
port = convertVarToNumeric<unsigned int>(tmp, 0);
121 sessionOptions.
userName = tmp.convert<std::string>();
125 sessionOptions.
userPassword = tmp.convert<std::string>();
129 sessionOptions.
shellName = tmp.convert<std::string>();
132 sessionOptions.
timeout = convertVarToNumeric<unsigned int>(tmp, 0);
135 sessionOptions.
tmode = convertVarToNumeric<unsigned int>(tmp, 0);
138 if (!pEnviroment.isNull())
140 for (
size_t j=0;j<pEnviroment->size();++j)
142 Poco::JSON::Object::Ptr pEnviromentElem = pEnviroment->getObject(j);
143 if (!pEnviromentElem.isNull())
145 std::vector<std::string> names;
146 pEnviromentElem->getNames(names);
147 for (
size_t k=0;k<names.size();++k)
149 tmp = pEnviromentElem->get(names[k]);
151 sessionOptions.
environments.push_back(std::make_pair(names[k], tmp.convert<std::string>()));
160 commandLine = tmp.convert<std::string>();
164 inputStream = tmp.convert<std::string>();
167 if (!pFiles.isNull())
169 for (
size_t i=0;i<pFiles->size();++i)
171 Poco::JSON::Object::Ptr pFileElem = pFiles->getObject(i);
172 if (!pFileElem.isNull())
185 catch(Poco::JSON::JSONException& e)
191 catch(Poco::Exception& e)
203 is.seekg(0, std::ios::end);
204 json.resize(is.tellg());
205 is.seekg(0, std::ios::beg);
206 is.read(const_cast<char*>(json.c_str()), json.size());