本文整理汇总了C++中CommandManager::add方法的典型用法代码示例。如果您正苦于以下问题:C++ CommandManager::add方法的具体用法?C++ CommandManager::add怎么用?C++ CommandManager::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CommandManager
的用法示例。
在下文中一共展示了CommandManager::add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main() {
Json::Reader reader;
Json::Value v;
IO<Json::Value> io(std::cin, std::cout);
CommandManager<std::string, std::function<Json::Value (const Json::Value&)> > commands;
SessionManager<RealPDAL> session;
commands.add("isSessionValid", [&session](const Json::Value&) -> Json::Value {
Json::Value r;
r["valid"] = session.isValid();
return r;
});
commands.add("create", [&session](const Json::Value& params) -> Json::Value {
// std::string desc = params["pipelineDesc"].asString();
session.create(params);
return Json::Value();
});
commands.add("destroy", [&session](const Json::Value&) -> Json::Value {
session.destroy();
return Json::Value();
});
commands.add("getNumPoints", [&session](const Json::Value&) -> Json::Value {
Json::Value v;
v[std::string("count")] = (int)session.getNumPoints();
return v;
});
commands.add("getSRS", [&session](const Json::Value&) -> Json::Value {
Json::Value v;
v[std::string("srs")] = session.getSRS();
return v;
});
commands.add("read", [&session](const Json::Value& params) -> Json::Value {
size_t npoints = session.getNumPoints();
size_t start = params.isMember("start") ? params["start"].asInt() : 0;
size_t count = params.isMember("count") ? params["count"].asInt() : npoints;
size_t nbufsize = session.stride() * count;
std::string host = params["transmitHost"].asString();
int port = params["transmitPort"].asInt();
boost::shared_array<char> pbuf(new char[nbufsize]);
count = session.read(pbuf.get(), start, count);
std::thread t(BufferTransmitter(host, port, pbuf, nbufsize));
t.detach();
Json::Value v;
v["message"] = "Read request queued for points to be delivered to specified host:port";
v["pointsRead"] = (int)count;
v["bytesCount"] = (int)nbufsize;
return v;
});
// indicate that we're ready to our controller program
Json::Value vReady; vReady["ready"] = 1;
io.write(vReady);
io.forInput([&commands](const Json::Value& v) -> Json::Value {
return commands.dispatch(v["command"].asString(), v["params"]);
});
return 0;
}