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


C++ object::Ptr类代码示例

本文整理汇总了C++中object::Ptr的典型用法代码示例。如果您正苦于以下问题:C++ Ptr类的具体用法?C++ Ptr怎么用?C++ Ptr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: typeid

void JSONTest::testDouble3Property()
{
	std::string json = "{ \"test\" : 12e-34 }";
	Parser parser;
	Var result;

	try
	{
		DefaultHandler handler;
		parser.setHandler(&handler);
		parser.parse(json);
		result = handler.result();
	}
	catch(JSONException& jsone)
	{
		std::cout << jsone.message() << std::endl;
		assert(false);
	}

	assert(result.type() == typeid(Object::Ptr));

	Object::Ptr object = result.extract<Object::Ptr>();
	Var test = object->get("test");
	assert(test.isNumeric());
	double value = test;
	assert(value == 12e-34);
}
开发者ID:RageStormers,项目名称:poco,代码行数:27,代码来源:JSONTest.cpp

示例2: testEmptyObjectElement

void JSONTest::testEmptyObjectElement()
{
	std::string json = "[{}]";
	Parser parser;
	Var result;

	try
	{
		DefaultHandler handler;
		parser.setHandler(&handler);
		parser.parse(json);
		result = handler.result();
	}
	catch(JSONException& jsone)
	{
		std::cout << jsone.message() << std::endl;
		assert(false);
	}

	assert(result.type() == typeid(Array::Ptr));

	Array::Ptr array = result.extract<Array::Ptr>();
	Object::Ptr object = array->getObject(0);
	assert(object->size() == 0);
}
开发者ID:RageStormers,项目名称:poco,代码行数:25,代码来源:JSONTest.cpp

示例3: testObjectProperty

void JSONTest::testObjectProperty()
{
	std::string json = "{ \"test\" : { \"property\" : \"value\" } }";
	Parser parser;
	Var result;

	try
	{
		DefaultHandler handler;
		parser.setHandler(&handler);
		parser.parse(json);
		result = handler.result();
	}
	catch(JSONException& jsone)
	{
		std::cout << jsone.message() << std::endl;
		assert(false);
	}

	assert(result.type() == typeid(Object::Ptr));

	Object::Ptr object = result.extract<Object::Ptr>();
	Var test = object->get("test");
	assert(test.type() == typeid(Object::Ptr));
	object = test.extract<Object::Ptr>();

	test = object->get("property");
	assert(test.isString());
	std::string value = test.convert<std::string>();
	assert(value.compare("value") == 0);
}
开发者ID:RageStormers,项目名称:poco,代码行数:31,代码来源:JSONTest.cpp

示例4: testOptValue

void JSONTest::testOptValue()
{
	std::string json = "{ }";
	Parser parser;
	Var result;

	try
	{
		DefaultHandler handler;
		parser.setHandler(&handler);
		parser.parse(json);
		result = handler.result();
	}
	catch(JSONException& jsone)
	{
		std::cout << jsone.message() << std::endl;
		assert(false);
	}

	assert(result.type() == typeid(Object::Ptr));

	Object::Ptr object = result.extract<Object::Ptr>();
	int n = object->optValue("test", 123);
	assert(n == 123);
}
开发者ID:RageStormers,项目名称:poco,代码行数:25,代码来源:JSONTest.cpp

示例5: testNullProperty

void JSONTest::testNullProperty()
{
	std::string json = "{ \"test\" : null }";
	Parser parser;

	Var result;
	try
	{
		DefaultHandler handler;
		parser.setHandler(&handler);
		parser.parse(json);
		result = handler.result();
	}
	catch(JSONException& jsone)
	{
		std::cout << jsone.message() << std::endl;
		assert(false);
	}
	assert(result.type() == typeid(Object::Ptr));

	Object::Ptr object = result.extract<Object::Ptr>();
	assert(object->isNull("test"));
	Var test = object->get("test");
	assert(test.isEmpty());
}
开发者ID:RageStormers,项目名称:poco,代码行数:25,代码来源:JSONTest.cpp

示例6: startArray

void ParseHandler::startArray()
{
	Array::Ptr newArr = new Array();

	if ( _stack.empty() ) // The first array
	{
		_result = newArr;
	}
	else
	{
		Var parent = _stack.top();

		if ( parent.type() == typeid(Array::Ptr) )
		{
			Array::Ptr arr = parent.extract<Array::Ptr>();
			arr->add(newArr);
		}
		else if ( parent.type() == typeid(Object::Ptr) )
		{
			poco_assert_dbg(!_key.empty());
			Object::Ptr obj = parent.extract<Object::Ptr>();
			obj->set(_key, newArr);
			_key.clear();
		}
	}

	_stack.push(newArr);
}
开发者ID:12307,项目名称:poco,代码行数:28,代码来源:ParseHandler.cpp

示例7: find

Var Query::find(const std::string& path) const
{
	Var result = _source;
	StringTokenizer tokenizer(path, ".");
	for(StringTokenizer::Iterator token = tokenizer.begin(); token != tokenizer.end(); token++)
	{
		if ( !result.isEmpty() )
		{
			std::vector<int> indexes;
			RegularExpression::MatchVec matches;
			int firstOffset = -1;
			int offset = 0;
			RegularExpression regex("\\[([0-9]+)\\]");
			while(regex.match(*token, offset, matches) > 0 )
			{
				if ( firstOffset == -1 )
				{
					firstOffset = static_cast<int>(matches[0].offset);
				}
				std::string num = token->substr(matches[1].offset, matches[1].length);
				indexes.push_back(NumberParser::parse(num));
				offset = static_cast<int>(matches[0].offset + matches[0].length);
			}

			std::string name(*token);
			if ( firstOffset != -1 )
			{
				name = name.substr(0, firstOffset);
			}

			if ( name.length() > 0 )
			{
				if ( result.type() == typeid(Object::Ptr) )
				{
					Object::Ptr o = result.extract<Object::Ptr>();
					result = o->get(name);
				}
			}

			if (    !result.isEmpty()
			        && !indexes.empty() )
			{
				for(std::vector<int>::iterator it = indexes.begin(); it != indexes.end(); ++it )
				{
					if ( result.type() == typeid(Array::Ptr) )
					{
						Array::Ptr array = result.extract<Array::Ptr>();
						result = array->get(*it);
						if ( result.isEmpty() )
						{
							break;
						}
					}
				}
			}
		}
	}
	return result;
}
开发者ID:babafall,项目名称:Sogeti-MasterThesis-CrossPlatformMobileDevelopment,代码行数:59,代码来源:Query.cpp

示例8: testTemplate

void JSONTest::testTemplate()
{
	Template tpl;
	tpl.parse("Hello world! From <?= person.name ?>\n<?if person.toOld ?>You're too old<?endif?>\n");

	Object::Ptr data = new Object();
	Object::Ptr person = new Object();
	data->set("person", person);
	person->set("name", "Franky");
	person->set("toOld", true);
	tpl.render(data, std::cout);
}
开发者ID:RageStormers,项目名称:poco,代码行数:12,代码来源:JSONTest.cpp

示例9: loadDocument

bool ChildSession::loadDocument(const char * /*buffer*/, int /*length*/, StringTokenizer& tokens)
{
    int part = -1;
    if (tokens.count() < 2)
    {
        sendTextFrame("error: cmd=load kind=syntax");
        return false;
    }

    std::string timestamp;
    parseDocOptions(tokens, part, timestamp);

    std::string renderOpts;
    if (!_docOptions.empty())
    {
        Parser parser;
        Poco::Dynamic::Var var = parser.parse(_docOptions);
        Object::Ptr object = var.extract<Object::Ptr>();
        renderOpts = object->get("rendering").toString();
    }

    assert(!_docURL.empty());
    assert(!_jailedFilePath.empty());

    std::unique_lock<std::recursive_mutex> lock(Mutex);

    _loKitDocument = _onLoad(getId(), _jailedFilePath, _docPassword, renderOpts, _haveDocPassword);
    if (!_loKitDocument)
    {
        Log::error("Failed to get LoKitDocument instance.");
        return false;
    }

    if (_multiView)
    {
        _viewId = _loKitDocument->getView();
        _loKitDocument->initializeForRendering((renderOpts.empty() ? nullptr : renderOpts.c_str()));
    }

    _docType = LOKitHelper::getDocumentTypeAsString(_loKitDocument->get());
    if (_docType != "text" && part != -1)
    {
        _loKitDocument->setPart(part);
    }

    // Respond by the document status, which has no arguments.
    Log::debug("Sending status after load.");
    if (!getStatus(nullptr, 0))
        return false;

    Log::info("Loaded session " + getId());
    return true;
}
开发者ID:biostone,项目名称:online,代码行数:53,代码来源:ChildSession.cpp

示例10: OnGetChatHistory

void MeetingConnImpl::OnGetChatHistory(Object::Ptr object)
{
	Var varStatus = object->get("status");
	if(varStatus == 0)
	{
		Var resultObj = object->get("result");
	}
	else
	{
		Var varMsg = object->get("msg");
		string errMsg = varMsg;
	}
}
开发者ID:ACEZLY,项目名称:openmeeting2,代码行数:13,代码来源:MeetingConnImpl.cpp

示例11: OnTextChat

void MeetingConnImpl::OnTextChat(Object::Ptr object)
{
	Var msg = object->get("msg");
	std::string strMsg = msg;
	Var varFamilly = object->get("fontName");
	std::string strFamilly = varFamilly;
	Var varFontSize = object->get("fontSize");
	uint32_t ulFontSize = varFontSize;
	Var varColor = object->get("color");
	uint32_t ulColor = varColor;
	Var varFlag = object->get("flag");
	uint64_t ulFlag = varFlag;
	Var varFromUserID = object->get("fromSessionID");
	uint64_t ulFromUserID = varFromUserID;
	Var varFromUserName = object->get("fromUserName");
	string strFromUserName = varFromUserName;
	Var varDate = object->get("date");
	time_t date = varDate;
	std::string msg2 = HTTPCookie::unescape(strMsg);
	std::string strFont2 = HTTPCookie::unescape(strFamilly);
	PMsgItem pMsgItem = new MsgItem();
	pMsgItem->ulUserID = ulFromUserID;
	pMsgItem->font_size = ulFontSize;
	pMsgItem->color = ulColor;
	pMsgItem->fontFlat = ulFlag;
	strcpy(pMsgItem->userName,strFromUserName.data());
	strcpy(pMsgItem->msg,msg2.data());
	strcpy(pMsgItem->familly,strFont2.data());
	//插入到列表
	m_chatMsgList.push_back(vector<PMsgItem>::value_type(pMsgItem));
	if(m_pIMeetingEvent)
	{
		m_pIMeetingEvent->On_MeetingEvent_Text_Msg(ulFromUserID,(char *)(msg2.data()),ulFontSize,ulFlag,ulColor,(char*)(strFont2.data()));
	}
}
开发者ID:ACEZLY,项目名称:openmeeting2,代码行数:35,代码来源:MeetingConnImpl.cpp

示例12: Dictionary

	BOOST_FOREACH(const ConfigObject::Ptr& obj, objs) {
		Dictionary::Ptr result1 = new Dictionary();
		results->Add(result1);

		Dictionary::Ptr resultAttrs = new Dictionary();
		result1->Set("attrs", resultAttrs);

		BOOST_FOREACH(const String& joinAttr, joinAttrs) {
			Object::Ptr joinedObj;
			String prefix;

			if (joinAttr.IsEmpty()) {
				joinedObj = obj;
				prefix = type->GetName();
			} else {
				int fid = type->GetFieldId(joinAttr);
				joinedObj = obj->NavigateField(fid);

				if (!joinedObj)
					continue;

				Field field = type->GetFieldInfo(fid);
				prefix = field.NavigationName;
			}

			boost::algorithm::to_lower(prefix);

			Type::Ptr joinedType = joinedObj->GetReflectionType();

			for (int fid = 0; fid < joinedType->GetFieldCount(); fid++) {
				Field field = joinedType->GetFieldInfo(fid);
				String aname = prefix + "." + field.Name;
				if (!attrs.empty() && attrs.find(aname) == attrs.end())
					continue;

				Value val = joinedObj->GetField(fid);

				/* hide internal navigation fields */
				if (field.Attributes & FANavigation) {
					Value nval = joinedObj->NavigateField(fid);

					if (val == nval)
						continue;
				}

				Value sval = Serialize(val, FAConfig | FAState);
				resultAttrs->Set(aname, sval);
			}
		}
开发者ID:jsabari,项目名称:icinga2,代码行数:49,代码来源:objectqueryhandler.cpp

示例13: OnEnterRoom

//进入房间
void MeetingConnImpl::OnEnterRoom(Object::Ptr object)
{
	Var varStatus = object->get("status");
	uint32_t status = varStatus;
	if(status == 0)
	{
		Var varUserRole = object->get("userRole");
		m_userRole = varUserRole;
		GetRoomInfo(m_ulRoomID);
	}
	else
	{
		MeetingFrameImpl::GetInstance()->On_MeetingEvent_Enter_Room_Result(status,NULL);
	}
}
开发者ID:ACEZLY,项目名称:openmeeting2,代码行数:16,代码来源:MeetingConnImpl.cpp

示例14: setValue

void ParseHandler::setValue(const Var& value)
{
	Var parent = _stack.top();

	if ( parent.type() == typeid(Array::Ptr) )
	{
		Array::Ptr arr = parent.extract<Array::Ptr>();
		arr->add(value);
	}
	else if ( parent.type() == typeid(Object::Ptr) )
	{
		poco_assert_dbg(!_key.empty());
		Object::Ptr obj = parent.extract<Object::Ptr>();
		obj->set(_key, value);
		_key.clear();
	}
}
开发者ID:12307,项目名称:poco,代码行数:17,代码来源:ParseHandler.cpp

示例15: OnLeaveRoom

//退出房间
void MeetingConnImpl::OnLeaveRoom(Object::Ptr object)
{
	Var varStatus = object->get("status");
	if(varStatus == 0)
	{

	}
}
开发者ID:ACEZLY,项目名称:openmeeting2,代码行数:9,代码来源:MeetingConnImpl.cpp


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