本文整理汇总了C++中AmArg::assertArrayFmt方法的典型用法代码示例。如果您正苦于以下问题:C++ AmArg::assertArrayFmt方法的具体用法?C++ AmArg::assertArrayFmt怎么用?C++ AmArg::assertArrayFmt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AmArg
的用法示例。
在下文中一共展示了AmArg::assertArrayFmt方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: NotImplemented
void XMLRPC2DI::invoke(const string& method,
const AmArg& args, AmArg& ret) {
if(method == "newConnection"){
args.assertArrayFmt("ssis"); // app, server, port, uri
newConnection(args, ret);
} else if(method == "sendRequest"){
args.assertArrayFmt("ssa"); // app, method, args
sendRequest(args, ret);
} else if(method == "_list"){
ret.push(AmArg("newConnection"));
ret.push(AmArg("sendRequest"));
} else
throw AmDynInvoke::NotImplemented(method);
}
示例2: invoke
void JsonRPCServerModule::invoke(const string& method,
const AmArg& args, AmArg& ret) {
if (method == "execRpc"){
// todo: add connection id
args.assertArrayFmt("sssisis"); // evq_link, notificationReceiver, requestReceiver,
// flags(i), host, port (i), method, [params]
if (args.size() > 7) {
if (!isArgArray(args.get(7)) && !isArgStruct(args.get(7))) {
ERROR("internal error: params to JSON-RPC must be struct or array\n");
throw AmArg::TypeMismatchException();
}
}
execRpc(args, ret);
// sendRequestList(args, ret);
} else if (method == "sendMessage"){
args.assertArrayFmt("sisss"); // conn_id, type, method, id, reply_sink, [params]
if (args.size() > 5) {
if (!isArgArray(args.get(5)) && !isArgStruct(args.get(5))) {
ERROR("internal error: params to JSON-RPC must be struct or array\n");
throw AmArg::TypeMismatchException();
}
}
sendMessage(args, ret);
} else if (method == "execServerFunction"){
args.assertArrayFmt("ss"); // method, id, params
JsonRpcServer::execRpc(args.get(0).asCStr(), args.get(1).asCStr(), args.get(2), ret);
// JsonRpcServer::execRpc(args, ret);
} else if (method == "getServerPort"){
ret.push(port);
} else if(method == "_list"){
ret.push(AmArg("execRpc"));
ret.push(AmArg("sendMessage"));
ret.push(AmArg("getServerPort"));
ret.push(AmArg("execServerFunction"));
// ret.push(AmArg("newConnection"));
// ret.push(AmArg("sendRequest"));
// ret.push(AmArg("sendRequestList"));
} else
throw AmDynInvoke::NotImplemented(method);
}
示例3: invoke
void DSMFactory::invoke(const string& method, const AmArg& args,
AmArg& ret)
{
if (method == "postDSMEvent"){
assertArgCStr(args.get(0))
DSMEvent* ev = new DSMEvent();
for (size_t i=0;i<args[1].size();i++)
ev->params[args[1][i][0].asCStr()] = args[1][i][1].asCStr();
if (AmSessionContainer::instance()->postEvent(args.get(0).asCStr(), ev)) {
ret.push(AmArg(200));
ret.push(AmArg("OK"));
} else {
ret.push(AmArg(404));
ret.push(AmArg("Session not found"));
}
} else if (method == "reloadDSMs"){
reloadDSMs(args,ret);
} else if (method == "loadDSM"){
args.assertArrayFmt("s");
loadDSM(args,ret);
} else if (method == "loadDSMWithPath"){
args.assertArrayFmt("sss");
loadDSMWithPaths(args,ret);
} else if (method == "preloadModules"){
preloadModules(args,ret);
} else if (method == "preloadModule"){
args.assertArrayFmt("ss");
preloadModule(args,ret);
} else if (method == "hasDSM"){
args.assertArrayFmt("s");
hasDSM(args,ret);
} else if (method == "listDSMs"){
listDSMs(args,ret);
} else if (method == "registerApplication"){
args.assertArrayFmt("s");
registerApplication(args,ret);
} else if (method == "loadConfig"){
args.assertArrayFmt("ss");
loadConfig(args,ret);
} else if(method == "_list"){
ret.push(AmArg("postDSMEvent"));
ret.push(AmArg("reloadDSMs"));
ret.push(AmArg("loadDSM"));
ret.push(AmArg("loadDSMWithPaths"));
ret.push(AmArg("preloadModules"));
ret.push(AmArg("preloadModule"));
ret.push(AmArg("loadConfig"));
ret.push(AmArg("hasDSM"));
ret.push(AmArg("listDSMs"));
ret.push(AmArg("registerApplication"));
} else
throw AmDynInvoke::NotImplemented(method);
}
示例4: invoke
void SBCFactory::invoke(const string& method, const AmArg& args,
AmArg& ret)
{
if (method == "listProfiles"){
listProfiles(args, ret);
} else if (method == "reloadProfiles"){
reloadProfiles(args,ret);
} else if (method == "loadProfile"){
args.assertArrayFmt("u");
loadProfile(args,ret);
} else if (method == "reloadProfile"){
args.assertArrayFmt("u");
reloadProfile(args,ret);
} else if (method == "getActiveProfile"){
getActiveProfile(args,ret);
} else if (method == "setActiveProfile"){
args.assertArrayFmt("u");
setActiveProfile(args,ret);
} else if (method == "getRegexMapNames"){
getRegexMapNames(args,ret);
} else if (method == "setRegexMap"){
args.assertArrayFmt("u");
setRegexMap(args,ret);
} else if (method == "loadCallcontrolModules"){
args.assertArrayFmt("s");
loadCallcontrolModules(args,ret);
} else if (method == "postControlCmd"){
args.assertArrayFmt("ss"); // at least call-ltag, cmd
postControlCmd(args,ret);
} else if(method == "_list"){
ret.push(AmArg("listProfiles"));
ret.push(AmArg("reloadProfiles"));
ret.push(AmArg("reloadProfile"));
ret.push(AmArg("loadProfile"));
ret.push(AmArg("getActiveProfile"));
ret.push(AmArg("setActiveProfile"));
ret.push(AmArg("getRegexMapNames"));
ret.push(AmArg("setRegexMap"));
ret.push(AmArg("loadCallcontrolModules"));
ret.push(AmArg("postControlCmd"));
ret.push(AmArg("printCallStats"));
} else if(method == "printCallStats"){
B2BMediaStatistics::instance()->getReport(args, ret);
} else
throw AmDynInvoke::NotImplemented(method);
}
示例5: invoke
void WebConferenceFactory::invoke(const string& method,
const AmArg& args,
AmArg& ret)
{
if(method == "roomCreate"){
roomCreate(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "roomInfo"){
roomInfo(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "dialout"){
dialout(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "mute"){
mute(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "unmute"){
unmute(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "kickout"){
kickout(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "serverInfo"){
serverInfo(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "vqRoomFeedback"){
vqRoomFeedback(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "vqCallFeedback"){
vqCallFeedback(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "vqConferenceFeedback"){
vqConferenceFeedback(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "help"){
ret.push("help text goes here");
ret.push(getServerInfoString().c_str());
} else if(method == "resetFeedback"){
resetFeedback(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "flushFeedback"){
flushFeedback(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "getRoomPassword"){
args.assertArrayFmt("ss");
getRoomPassword(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "listRooms"){
args.assertArrayFmt("s");
listRooms(args, ret);
ret.push(getServerInfoString().c_str());
} else if(method == "_list"){
ret.push("roomCreate");
ret.push("roomInfo");
ret.push("dialout");
ret.push("mute");
ret.push("unmute");
ret.push("kickout");
ret.push("serverInfo");
ret.push("vqConferenceFeedback");
ret.push("vqCallFeedback");
ret.push("vqRoomFeedback");
ret.push("getRoomPassword");
ret.push("listRooms");
} else
throw AmDynInvoke::NotImplemented(method);
}