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


C++ Stanza::createElement方法代码示例

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


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

示例1: stanzaReadWrite

bool ClientInfo::stanzaReadWrite(int AHandlerId, const Jid &AStreamJid, Stanza &AStanza, bool &AAccept)
{
	if (AHandlerId == FVersionHandle)
	{
		AAccept = true;
		Stanza result = FStanzaProcessor->makeReplyResult(AStanza);
		QDomElement elem = result.addElement("query",NS_JABBER_VERSION);
		elem.appendChild(result.createElement("name")).appendChild(result.createTextNode(CLIENT_NAME));
		if (FPluginManager->revisionDate().isValid())
		{
			QString rev = FPluginManager->revisionDate().date().toString("yyyyMMdd");
			elem.appendChild(result.createElement("version")).appendChild(result.createTextNode(QString("%1.%2 %3").arg(FPluginManager->version(),rev,CLIENT_VERSION_SUFFIX)));
		}
		else
		{
			elem.appendChild(result.createElement("version")).appendChild(result.createTextNode(QString("%1 %2").arg(FPluginManager->version(),CLIENT_VERSION_SUFFIX)));
		}
		if (Options::node(OPV_COMMON_SHAREOSVERSION).value().toBool())
			elem.appendChild(result.createElement("os")).appendChild(result.createTextNode(osVersion()));
		if (FStanzaProcessor->sendStanzaOut(AStreamJid,result))
			LOG_STRM_INFO(AStreamJid,QString("Software version sent to=%1").arg(AStanza.from()));
		else
			LOG_STRM_WARNING(AStreamJid,QString("Failed to send software version to=%1").arg(AStanza.from()));
	}
	else if (AHandlerId == FActivityHandler)
	{
		AAccept = true;
		Stanza result = FStanzaProcessor->makeReplyResult(AStanza);
		QDomElement elem = result.addElement("query",NS_JABBER_LAST);
		elem.setAttribute("seconds", SystemManager::systemIdle());
		if (FStanzaProcessor->sendStanzaOut(AStreamJid,result))
			LOG_STRM_INFO(AStreamJid,QString("Last activity sent to=%1").arg(AStanza.from()));
		else
			LOG_STRM_WARNING(AStreamJid,QString("Failed to send last activity to=%1").arg(AStanza.from()));
	}
	else if (AHandlerId == FTimeHandle)
	{
		AAccept = true;
		Stanza result = FStanzaProcessor->makeReplyResult(AStanza);
		QDomElement elem = result.addElement("time",NS_XMPP_TIME);
		DateTime dateTime(QDateTime::currentDateTime());
		elem.appendChild(result.createElement("tzo")).appendChild(result.createTextNode(dateTime.toX85TZD()));
		elem.appendChild(result.createElement("utc")).appendChild(result.createTextNode(dateTime.toX85UTC()));
		if (FStanzaProcessor->sendStanzaOut(AStreamJid,result))
			LOG_STRM_INFO(AStreamJid,QString("Current time sent to=%1").arg(AStanza.from()));
		else
			LOG_STRM_WARNING(AStreamJid,QString("Failed to send current time to=%1").arg(AStanza.from()));
	}
	else if (AHandlerId == FPingHandle)
	{
		AAccept = true;
		Stanza result = FStanzaProcessor->makeReplyResult(AStanza);
		if (FStanzaProcessor->sendStanzaOut(AStreamJid,result))
			LOG_STRM_INFO(AStreamJid,QString("Ping answer sent to=%1").arg(AStanza.from()));
		else
			LOG_STRM_WARNING(AStreamJid,QString("Failed to send ping answer to=%1").arg(AStanza.from()));
	}
	else
	{
		REPORT_ERROR("Received unexpected stanza");
	}
	return false;
}
开发者ID:RoadWorksSoftware,项目名称:eyecu-qt,代码行数:63,代码来源:clientinfo.cpp


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