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


C++ QXmppPresence::photoHash方法代码示例

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


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

示例1: CheckVCardUpdate

	void EntryBase::CheckVCardUpdate (const QXmppPresence& pres)
	{
		auto conn = Account_->GetClientConnection ();
		if (!conn->GetInfoReqPolicyManager ()->IsRequestAllowed (InfoRequest::VCard, this))
			return;

		const auto& vcardUpdate = pres.vCardUpdateType ();
		if (vcardUpdate == QXmppPresence::VCardUpdateNoPhoto)
		{
			if (!VCardPhotoHash_.isEmpty ())
			{
				VCardPhotoHash_.clear ();
				WriteDownPhotoHash ();
				emit avatarChanged (this);
			}
		}
		else if (vcardUpdate == QXmppPresence::VCardUpdateValidPhoto)
		{
			if (pres.photoHash () != VCardPhotoHash_)
			{
				VCardPhotoHash_ = pres.photoHash ();
				WriteDownPhotoHash ();
				emit avatarChanged (this);
			}
		}
	}
开发者ID:ForNeVeR,项目名称:leechcraft,代码行数:26,代码来源:entrybase.cpp

示例2: testPresenceWithCapability

void TestPackets::testPresenceWithCapability()
{
    const QByteArray xml(
        "<presence to=\"[email protected]/QXmpp\" from=\"[email protected]/QXmpp\">"
        "<show>away</show>"
        "<status>In a meeting</status>"
        "<priority>5</priority>"
        "<x xmlns=\"vcard-temp:x:update\">"
        "<photo>73b908bc</photo>"
        "</x>"
        "<c xmlns=\"http://jabber.org/protocol/caps\" hash=\"sha-1\" node=\"http://code.google.com/p/qxmpp\" ver=\"QgayPKawpkPSDYmwT/WM94uAlu0=\"/>"
        "</presence>");

    QXmppPresence presence;
    parsePacket(presence, xml);
    QCOMPARE(presence.to(), QString("[email protected]/QXmpp"));
    QCOMPARE(presence.from(), QString("[email protected]/QXmpp"));
    QCOMPARE(presence.status().type(), QXmppPresence::Status::Away);
    QCOMPARE(presence.status().statusText(), QString("In a meeting"));
    QCOMPARE(presence.status().priority(), 5);
    QCOMPARE(presence.photoHash(), QByteArray::fromHex("73b908bc"));
    QCOMPARE(presence.vCardUpdateType(), QXmppPresence::VCardUpdateValidPhoto);
    QCOMPARE(presence.capabilityHash(), QString("sha-1"));
    QCOMPARE(presence.capabilityNode(), QString("http://code.google.com/p/qxmpp"));
    QCOMPARE(presence.capabilityVer(), QByteArray::fromBase64("QgayPKawpkPSDYmwT/WM94uAlu0="));

    serializePacket(presence, xml);
}
开发者ID:contextlogger,项目名称:contextlogger2,代码行数:28,代码来源:tests.cpp

示例3: CheckVCardUpdate

	void EntryBase::CheckVCardUpdate (const QXmppPresence& pres)
	{
		auto conn = Account_->GetClientConnection ();
		if (!conn->GetInfoReqPolicyManager ()->IsRequestAllowed (InfoRequest::VCard, this))
			return;

		auto fetchVCard = [this, conn] () -> void
		{
			QPointer<EntryBase> ptr (this);
			conn->FetchVCard (GetJID (),
					[ptr] (const QXmppVCardIq& iq) { if (ptr) ptr->SetVCard (iq); });
		};

		const auto& vcardUpdate = pres.vCardUpdateType ();
		if (vcardUpdate == QXmppPresence::VCardUpdateNoPhoto)
		{
			if (!Avatar_.isNull ())
			{
				Avatar_ = QImage ();
				emit avatarChanged (GetAvatar ());
			}
		}
		else if (vcardUpdate == QXmppPresence::VCardUpdateValidPhoto)
		{
			if (pres.photoHash () != VCardPhotoHash_)
				fetchVCard ();
		}
		else if (pres.type () == QXmppPresence::Available && !HasBlindlyRequestedVCard_)
		{
			fetchVCard ();
			HasBlindlyRequestedVCard_ = true;
		}
	}
开发者ID:trett,项目名称:leechcraft,代码行数:33,代码来源:entrybase.cpp

示例4: testPresence

void TestPackets::testPresence()
{
    const QByteArray xml(
        "<presence to=\"[email protected]/QXmpp\" from=\"[email protected]/QXmpp\">"
        "<x xmlns=\"vcard-temp:x:update\"/></presence>");

    QXmppPresence presence;
    parsePacket(presence, xml);
    QCOMPARE(presence.to(), QString("[email protected]/QXmpp"));
    QCOMPARE(presence.from(), QString("[email protected]/QXmpp"));
    QCOMPARE(presence.photoHash(), QByteArray(""));
    QCOMPARE(presence.vCardUpdateType(), QXmppPresence::VCardUpdateNotReady);
    serializePacket(presence, xml);
}
开发者ID:contextlogger,项目名称:contextlogger2,代码行数:14,代码来源:tests.cpp

示例5: presenceReceived

void JabberContactAvatarService::presenceReceived(const QXmppPresence &presence)
{
    auto jid = Jid::parse(presence.from());
    auto contactId = ContactId{jid.bare().toUtf8()};

    switch (presence.vCardUpdateType())
    {
    case QXmppPresence::VCardUpdateNoPhoto:
        emit removed(contactId);
        break;
    case QXmppPresence::VCardUpdateValidPhoto:
        emit available({contactId, presence.photoHash()});
        break;
    default:
        break;
    }
}
开发者ID:vogel,项目名称:kadu,代码行数:17,代码来源:jabber-contact-avatar-service.cpp

示例6: testPresenceWithVCardUpdate

void TestPackets::testPresenceWithVCardUpdate()
{
    const QByteArray xml(
        "<presence to=\"[email protected]/QXmpp\" from=\"[email protected]/QXmpp\">"
        "<show>away</show>"
        "<status>In a meeting</status>"
        "<priority>5</priority>"
        "<x xmlns=\"vcard-temp:x:update\">"
        "<photo>73b908bc</photo>"
        "</x>"
        "</presence>");

    QXmppPresence presence;
    parsePacket(presence, xml);
    QCOMPARE(presence.to(), QString("[email protected]/QXmpp"));
    QCOMPARE(presence.from(), QString("[email protected]/QXmpp"));
    QCOMPARE(presence.status().type(), QXmppPresence::Status::Away);
    QCOMPARE(presence.status().statusText(), QString("In a meeting"));
    QCOMPARE(presence.status().priority(), 5);
    QCOMPARE(presence.photoHash(), QByteArray::fromHex("73b908bc"));
    QCOMPARE(presence.vCardUpdateType(), QXmppPresence::VCardUpdateValidPhoto);
    serializePacket(presence, xml);
}
开发者ID:contextlogger,项目名称:contextlogger2,代码行数:23,代码来源:tests.cpp


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