当前位置: 首页>>代码示例>>C++>>正文


C++ Parameters::begin方法代码示例

本文整理汇总了C++中sqf::Parameters::begin方法的典型用法代码示例。如果您正苦于以下问题:C++ Parameters::begin方法的具体用法?C++ Parameters::begin怎么用?C++ Parameters::begin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sqf::Parameters的用法示例。


在下文中一共展示了Parameters::begin方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: callExtension

void HiveExtApp::callExtension( const char* function, char* output, size_t outputSize )
{
	Sqf::Parameters params;
	try
	{
		params = lexical_cast<Sqf::Parameters>(function);	
	}
	catch(bad_lexical_cast)
	{
		logger().error("Cannot parse function: " + string(function));
		return;
	}

	int funcNum = -1;
	try
	{
		string childIdent = boost::get<string>(params.at(0));
		if (childIdent != "CHILD")
			throw std::runtime_error("First element in parameters must be CHILD");

		params.erase(params.begin());
		funcNum = boost::get<int>(params.at(0));
		params.erase(params.begin());
	}
	catch (...)
	{
		logger().error("Invalid function format: " + string(function));
		return;
	}

	if (handlers.count(funcNum) < 1)
	{
		logger().error("Invalid method id: " + lexical_cast<string>(funcNum));
		return;
	}

	if (logger().debug())
		logger().debug("Original params: |" + string(function) + "|");

	logger().information("Method: " + lexical_cast<string>(funcNum) + " Params: " + lexical_cast<string>(params));
	HandlerFunc handler = handlers[funcNum];
	Sqf::Value res;
	try
	{
		res = handler(params);
	}
	catch (...)
	{
		logger().error("Error executing |" + string(function) + "|");
		return;
	}		

	string serializedRes = lexical_cast<string>(res);
	if (serializedRes.length() >= outputSize)
	{
		logger().error("Output size too big ("+lexical_cast<string>(serializedRes.length())+") for request : " + string(function));
		return;
	}

	logger().information("Result: " + serializedRes);		
	strncpy_s(output,outputSize,serializedRes.c_str(),outputSize-1);
}
开发者ID:TheTrivials,项目名称:hive,代码行数:62,代码来源:HiveExtApp.cpp


注:本文中的sqf::Parameters::begin方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。