本文整理汇总了C++中poco::json::array::Ptr类的典型用法代码示例。如果您正苦于以下问题:C++ Ptr类的具体用法?C++ Ptr怎么用?C++ Ptr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Ptr类的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: updateTasksList
void updateTasksList()
{
printf("updateTasksList()\n");
tasksNum = task_manager->getTasksNumber();
if(tasksNum > 0)
{
Poco::JSON::Object::Ptr pObj = new Poco::JSON::Object;
task_manager->getTasks(pObj);
Poco::DynamicStruct ds = *pObj;
printf("ds:%s\n", ds.toString().c_str());
if(pObj->has("tasks"))
printf("pObj has tasks\n");
if(pObj->isArray("tasks"))
printf("pObj is array tasks\n");
Poco::JSON::Array::Ptr pArray = pObj->getArray("tasks");
printf("tasksNum:%d, array size:%d\n", tasksNum, pArray->size());
for(int i = 0; i < tasksNum; i++)
{
memset(pTask[i], 0, sizeof(TaskInfo));
Poco::Dynamic::Var var = pArray->get(i);
Poco::DynamicStruct dss = var.extract<Poco::DynamicStruct>();
pTask[i]->id = (Poco::Int64)dss["id"].extract<Poco::Int64>();
pTask[i]->option = dss["option"].extract<int>();
pTask[i]->hour = dss["hour"].extract<int>();
pTask[i]->minute = dss["minute"].extract<int>();
pTask[i]->weekday = dss["weekday"].extract<int>();
}
}
}
开发者ID:shuchuangtech,项目名称:Shuchuang,代码行数:29,代码来源:main.cpp
示例2:
Poco::JSON::Object::Ptr BlockEval::inspectPorts(void)
{
auto block = _proxyBlock;
Poco::JSON::Object::Ptr info = new Poco::JSON::Object();
info->set("uid", block.call<std::string>("uid"));
//TODO FIXME inspect will fail for topologies ATM, cant query isSignal/isSlot on topology
Poco::JSON::Array::Ptr inputPorts = new Poco::JSON::Array();
for (const auto &name : block.call<std::vector<std::string>>("inputPortNames"))
{
Poco::JSON::Object::Ptr portInfo = new Poco::JSON::Object();
portInfo->set("name", name);
portInfo->set("isSlot", block.callProxy("input", name).call<bool>("isSlot"));
portInfo->set("size", block.callProxy("input", name).callProxy("dtype").call<unsigned>("size"));
portInfo->set("dtype", block.callProxy("input", name).callProxy("dtype").call<std::string>("toString"));
inputPorts->add(portInfo);
}
info->set("inputPorts", inputPorts);
Poco::JSON::Array::Ptr outputPorts = new Poco::JSON::Array();
for (const auto &name : block.call<std::vector<std::string>>("outputPortNames"))
{
Poco::JSON::Object::Ptr portInfo = new Poco::JSON::Object();
portInfo->set("name", name);
portInfo->set("isSignal", block.callProxy("output", name).call<bool>("isSignal"));
portInfo->set("size", block.callProxy("output", name).callProxy("dtype").call<unsigned>("size"));
portInfo->set("dtype", block.callProxy("output", name).callProxy("dtype").call<std::string>("toString"));
outputPorts->add(portInfo);
}
info->set("outputPorts", outputPorts);
return info;
}
开发者ID:hailynch,项目名称:pothos,代码行数:35,代码来源:BlockEval.cpp
示例3: handlePasteType
/*!
* paste only one object type so handlePaste can control the order of creation
*/
static GraphObjectList handlePasteType(GraphDraw *draw, const Poco::JSON::Array::Ptr &graphObjects, const std::string &type)
{
GraphObjectList newObjects;
for (size_t objIndex = 0; objIndex < graphObjects->size(); objIndex++)
{
const auto jGraphObj = graphObjects->getObject(objIndex);
const auto what = jGraphObj->getValue<std::string>("what");
GraphObject *obj = nullptr;
if (what != type) continue;
if (what == "Block") obj = new GraphBlock(draw);
if (what == "Breaker") obj = new GraphBreaker(draw);
if (what == "Connection") obj = new GraphConnection(draw);
if (what == "Widget") obj = new GraphWidget(draw);
if (obj == nullptr) continue;
try {obj->deserialize(jGraphObj);}
catch (const Pothos::NotFoundException &)
{
delete obj;
continue;
}
obj->setSelected(true);
newObjects.push_back(obj);
}
return newObjects;
}
开发者ID:m0x72,项目名称:pothos,代码行数:28,代码来源:GraphEditor.cpp
示例4: main
int main(int argc, char** argv)
{
// MyVector vec;
Poco::JSON::Array::Ptr pArray = new Poco::JSON::Array;
Poco::DynamicStruct ds1;
ds1["aaa"] = "a1";
ds1["bbb"] = 10;
ds1["ccc"] = 111;
pArray->add(ds1);
displayArray(pArray);
// vec.push_back(ds1);
// displayMyVector(vec);
Poco::DynamicStruct ds2;
ds2["aaa"] = "a2";
ds2["bbb"] = 20;
ds2["ccc"] = 222;
pArray->add(ds2);
displayArray(pArray);
// vec.push_back(ds2);
// displayMyVector(vec);
Poco::DynamicStruct ds3;
ds3["aaa"] = "a3";
ds3["bbb"] = 30;
ds3["ccc"] = 333;
pArray->add(ds3);
displayArray(pArray);
// vec.push_back(ds3);
// displayMyVector(vec);
return 0;
}
开发者ID:shuchuangtech,项目名称:Shuchuang,代码行数:30,代码来源:main.cpp
示例5: makeBlock
/***********************************************************************
* block factory - make blocks from JSON object
**********************************************************************/
static Pothos::Proxy makeBlock(
const Pothos::Proxy ®istry,
const Pothos::Proxy &evaluator,
const Poco::JSON::Object::Ptr &blockObj)
{
const auto id = blockObj->getValue<std::string>("id");
if (not blockObj->has("path")) throw Pothos::DataFormatException(
"Pothos::Topology::make()", "blocks["+id+"] missing 'path' field");
const auto path = blockObj->getValue<std::string>("path");
//load up the constructor args
Poco::JSON::Array::Ptr argsArray;
if (blockObj->isArray("args")) argsArray = blockObj->getArray("args");
const auto ctorArgs = evalArgsArray(evaluator, argsArray);
//create the block
auto block = registry.getHandle()->call(path, ctorArgs.data(), ctorArgs.size());
//make the calls
Poco::JSON::Array::Ptr callsArray;
if (blockObj->isArray("calls")) callsArray = blockObj->getArray("calls");
if (callsArray) for (size_t i = 0; i < callsArray->size(); i++)
{
const auto callArray = callsArray->getArray(i);
auto name = callArray->getElement<std::string>(0);
const auto callArgs = evalArgsArray(evaluator, callArray, 1/*offset*/);
block.getHandle()->call(name, callArgs.data(), callArgs.size());
}
return block;
}
开发者ID:johnson325,项目名称:pothos,代码行数:35,代码来源:TopologyJSON.cpp
示例6: inquire
void QueueStatusController::inquire()
{
Poco::JSON::Object::Ptr pcfParameters;
if ( data().has("input") && data().isObject("input") )
{
pcfParameters = data().getObject("input");
}
else
{
pcfParameters = new Poco::JSON::Object();
setData("input", pcfParameters);
std::vector<std::string> parameters = getParameters();
// First parameter is queuemanager
// Second parameter can be a queuename. If this is passed, the
// query parameter QName or queueName is ignored.
if ( parameters.size() > 1 )
{
pcfParameters->set("QName", parameters[1]);
}
else
{
// Handle query parameters
pcfParameters->set("QName", form().get("QName", "*"));
}
pcfParameters->set("ExcludeSystem", form().get("ExcludeSystem", "false").compare("true") == 0);
pcfParameters->set("ExcludeTemp", form().get("ExcludeTemp", "false").compare("true") == 0);
if ( form().has("CommandScope") )
{
pcfParameters->set("CommandScope", form().get("CommandScope"));
}
if ( form().has("QSGDisposition") )
{
pcfParameters->set("QSGDisposition", form().get("QSGDisposition"));
}
if ( form().has("StatusType") ) pcfParameters->set("StatusType", form().get("StatusType"));
if ( form().has("OpenType") ) pcfParameters->set("OpenType", form().get("OpenType"));
handleFilterForm(pcfParameters);
Poco::JSON::Array::Ptr attrs = new Poco::JSON::Array();
formElementToJSONArray("QStatusAttrs", attrs);
if ( attrs->size() == 0 ) // Nothing found for QStatusAttrs, try Attrs
{
formElementToJSONArray("Attrs", attrs);
}
if ( attrs->size() > 0 )
{
pcfParameters->set("QStatusAttrs", attrs);
}
}
QueueStatusInquire command(*commandServer(), pcfParameters);
setData("data", command.execute());
}
开发者ID:fbraem,项目名称:mqweb,代码行数:60,代码来源:QueueStatusController.cpp
示例7: save
void save(Archive & ar, const Poco::JSON::Array::Ptr &t, const unsigned int)
{
bool isNull = t.isNull();
ar << isNull;
if (isNull) return;
std::ostringstream oss; t->stringify(oss);
std::string s = oss.str(); ar << s;
}
开发者ID:hailynch,项目名称:pothos,代码行数:8,代码来源:JSONSerialization.cpp
示例8: portInfosToJSON
//! helper to convert the port info vector into JSON for serialization of the block
static Poco::JSON::Array::Ptr portInfosToJSON(const std::vector<Pothos::PortInfo> &infos)
{
Poco::JSON::Array::Ptr array = new Poco::JSON::Array();
for (const auto &info : infos)
{
Poco::JSON::Object::Ptr portInfo = new Poco::JSON::Object();
portInfo->set("name", info.name);
portInfo->set("isSigSlot", info.isSigSlot);
portInfo->set("size", info.dtype.size());
portInfo->set("dtype", info.dtype.toMarkup());
array->add(portInfo);
}
return array;
}
开发者ID:xloem,项目名称:pothos,代码行数:15,代码来源:BlockEval.cpp
示例9: dump
static std::string dump(void)
{
Poco::JSON::Array::Ptr deviceObj = new Poco::JSON::Array();
for (const auto &deviceName : Pothos::PluginRegistry::list("/devices"))
{
auto path = Pothos::PluginPath("/devices").join(deviceName).join("info");
if (not Pothos::PluginRegistry::exists(path)) continue;
auto plugin = Pothos::PluginRegistry::get(path);
auto call = plugin.getObject().extract<Pothos::Callable>();
deviceObj->add(call.call<Poco::JSON::Object::Ptr>());
}
std::stringstream ss;
deviceObj->stringify(ss);
return ss.str();
}
开发者ID:hailynch,项目名称:pothos,代码行数:15,代码来源:DeviceInfoUtils.cpp
示例10: evalArgsArray
/***********************************************************************
* evaluate an args array (calls and constructors)
**********************************************************************/
static std::vector<Pothos::Proxy> evalArgsArray(
const Pothos::Proxy &evaluator,
const Poco::JSON::Array::Ptr &argsArray,
const size_t offset = 0)
{
std::vector<Pothos::Proxy> args;
if (argsArray) for (size_t i = offset; i < argsArray->size(); i++)
{
auto arg = argsArray->get(i).toString();
if (argsArray->get(i).isString()) arg = "\""+arg+"\"";
const auto obj = evaluator.call<Pothos::Object>("eval", arg);
args.push_back(evaluator.getEnvironment()->convertObjectToProxy(obj));
}
return args;
}
开发者ID:johnson325,项目名称:pothos,代码行数:18,代码来源:TopologyJSON.cpp
示例11: assert
Poco::JSON::Object::Ptr AffinityZoneEditor::getCurrentConfig(void) const
{
Poco::JSON::Object::Ptr config = new Poco::JSON::Object();
config->set("color", _colorPicker->currentColor().name().toStdString());
config->set("hostUri", _hostsBox->itemText(_hostsBox->currentIndex()).toStdString());
config->set("processName", _processNameEdit->text().toStdString());
config->set("numThreads", _numThreadsSpin->value());
config->set("priority", _prioritySpin->value()/100.0);
assert(_cpuSelection != nullptr);
config->set("affinityMode", _cpuSelection->mode());
Poco::JSON::Array::Ptr affinityMask = new Poco::JSON::Array();
for (auto num : _cpuSelection->selection()) affinityMask->add(num);
config->set("affinityMask", affinityMask);
config->set("yieldMode", _yieldModeBox->itemData(_yieldModeBox->currentIndex()).toString().toStdString());
return config;
}
开发者ID:hailynch,项目名称:pothos,代码行数:16,代码来源:AffinityZoneEditor.cpp
示例12: connectionsHave
/***********************************************************************
* Helper method for unit tests
**********************************************************************/
static bool connectionsHave(
const Poco::JSON::Array::Ptr &connsArray,
const std::string &srcId, const std::string &srcName,
const std::string &dstId, const std::string &dstName
)
{
for (size_t c_i = 0; c_i < connsArray->size(); c_i++)
{
const auto connObj = connsArray->getObject(c_i);
if (connObj->getValue<std::string>("srcId") != srcId) continue;
if (connObj->getValue<std::string>("srcName") != srcName) continue;
if (connObj->getValue<std::string>("dstId") != dstId) continue;
if (connObj->getValue<std::string>("dstName") != dstName) continue;
return true;
}
return false;
}
开发者ID:johnson325,项目名称:pothos,代码行数:20,代码来源:TestTopology.cpp
示例13:
Poco::JSON::Array::Ptr QueueManagerPing::execute()
{
PCFCommand::execute();
Poco::JSON::Array::Ptr json = new Poco::JSON::Array();
for(PCF::Vector::const_iterator it = begin(); it != end(); it++)
{
if ( (*it)->isExtendedResponse() ) // Skip extended response
continue;
Poco::JSON::Object::Ptr data = new Poco::JSON::Object();
json->add(createJSON(**it));
}
return json;
}
开发者ID:fbraem,项目名称:mqweb,代码行数:17,代码来源:QueueManagerPing.cpp
示例14:
Poco::JSON::Array::Ptr ChannelAuthenticationRecordInquire::execute()
{
PCFCommand::execute();
Poco::JSON::Array::Ptr json = new Poco::JSON::Array();
for(PCF::Vector::const_iterator it = begin(); it != end(); it++)
{
if ( (*it)->getReasonCode() != MQRC_NONE ) // Skip errors (2035 not authorized for example)
continue;
if ( (*it)->isExtendedResponse() ) // Skip extended response
continue;
json->add(createJSON(**it));
}
return json;
}
开发者ID:fbraem,项目名称:mqweb,代码行数:19,代码来源:ChannelAuthenticationRecordInquire.cpp
示例15: OnGetRoomUserList
void MeetingConnImpl::OnGetRoomUserList(Object::Ptr object)
{
Var varStatus = object->get("status");
if(varStatus == 0)
{
Var resultObj = object->get("result");
Poco::JSON::Array::Ptr array =resultObj.extract<Poco::JSON::Array::Ptr>();
for(Poco::Int32 i = 0; i<array->size();i++)
{
Parser parser;
Var result;
Var item = array->get(i);
string strItem = item;
try
{
result = parser.parse(strItem);
}
catch(JSONException& jsone)
{
std::cout << jsone.message() << std::endl;
return;
}
Object::Ptr tempObj = result.extract<Object::Ptr>();
Var varSessionID = tempObj->get("sessionID");
Var varUserName = tempObj->get("userName");
Var varUserRole = tempObj->get("userRole");
Var varClientType = tempObj->get("clientType");
string strUserName = varUserName;
uint32_t userRole = varUserRole;
uint32_t clientType = varClientType;
uint64_t sessionID= varSessionID;
MeetingFrameImpl::GetInstance()->On_MeetingEvent_Member_Online(sessionID,(char*)strUserName.data(),"",clientType,userRole);
}
}
}
开发者ID:ACEZLY,项目名称:openmeeting2,代码行数:41,代码来源:MeetingConnImpl.cpp
示例16: numThreads
Pothos::ThreadPoolArgs::ThreadPoolArgs(const std::string &json):
numThreads(0),
priority(0.0)
{
//parse to JSON object
Poco::JSON::Parser p;
p.parse(json);
auto topObj = p.getHandler()->asVar().extract<Poco::JSON::Object::Ptr>();
//parse out the optional fields
this->numThreads = topObj->optValue<int>("numThreads", 0);
this->priority = topObj->optValue<double>("priority", 0.0);
this->affinityMode = topObj->optValue<std::string>("affinityMode", "");
this->yieldMode = topObj->optValue<std::string>("yieldMode", "");
//parse out the affinity list
Poco::JSON::Array::Ptr affinityArray;
if (topObj->isArray("affinity")) affinityArray = topObj->getArray("affinity");
if (affinityArray) for (size_t i = 0; i < affinityArray->size(); i++)
{
this->affinity.push_back(affinityArray->getElement<int>(i));
}
}
开发者ID:johnson325,项目名称:pothos,代码行数:23,代码来源:ThreadPool.cpp
示例17: parseModesFile
void parseModesFile() {
printf("Parse\n" );
try {
//Application& app = Application::instance();
/*
[
{ "code":1, "width":640, "height":480, "rate":60, "aspect_ratio":"4:3", "scan":"p", "3d_modes":[] }
]
*/
//std::string conf = std::string(" [ { \"code\":1 , \"width\":640, \"height\":480 } , { \"code\":3 , \"width\":800, \"height\":600 } ]");
std::string conf =readFileToString("data/modes.json");
Parser parser;
Var result = parser.parse(conf);
Poco::JSON::Array::Ptr arr = result.extract<Poco::JSON::Array::Ptr>();
for (int i=0;i<arr->size(); i++) {
Object::Ptr object = arr->getObject(i);
printf("w,h=%d,%d\n",object->getValue<int>("width"),object->getValue<int>("height"));
}
Query myQuery(result);
//Var topic=myQuery.find("code");
//int value = topic.convert<int>();
//printf("Value=%d\n",value);
} catch (...)
{
printf("Exception\n");
}
}
开发者ID:Ebiroll,项目名称:Player,代码行数:37,代码来源:webmain.cpp
注:本文中的poco::json::array::Ptr类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论