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


C++ QXmppMessage::setMarker方法代码示例

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


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

示例1: testChatMarkers


//.........这里部分代码省略.........
    const QByteArray emptyThreadXml(
                "<message "
                    "from='[email protected]/throne' "
                    "id='message-2' "
                    "to='[email protected]/westminster'>"
                  "<received xmlns='urn:xmpp:chat-markers:0' "
                               "id='message-1'/>"
                "</message>");

    QXmppMessage emptyThreadMessage;
    parsePacket(emptyThreadMessage, emptyThreadXml);
    QCOMPARE(emptyThreadMessage.isMarkable(), false);
    QCOMPARE(emptyThreadMessage.marker(), QXmppMessage::Received);
    QCOMPARE(emptyThreadMessage.id(), QString("message-2"));
    QCOMPARE(emptyThreadMessage.markedId(), QString("message-1"));
    QCOMPARE(emptyThreadMessage.thread(), QString());
    QCOMPARE(emptyThreadMessage.markedThread(), QString());

    const QByteArray notMarkableSerialisation(
                "<message "
                    "id=\"message-3\" "
                    "to=\"[email protected]/westminster\" "
                    "from=\"[email protected]/throne\" "
                    "type=\"chat\"/>");

    QXmppMessage serialisationMessage;
    serialisationMessage.setFrom("[email protected]/throne");
    serialisationMessage.setTo("[email protected]/westminster");
    serialisationMessage.setId("message-3");
    serialisationMessage.setMarkable(false);
    serializePacket(serialisationMessage, notMarkableSerialisation);

    const QByteArray markableSerialisation(
                "<message "
                    "id=\"message-3\" "
                    "to=\"[email protected]/westminster\" "
                    "from=\"[email protected]/throne\" "
                    "type=\"chat\">"
                    "<markable xmlns=\"urn:xmpp:chat-markers:0\"/>"
                "</message>");

    serialisationMessage.setMarkable(true);
    serializePacket(serialisationMessage, markableSerialisation);

    const QByteArray receivedSerialisation(
                "<message "
                    "id=\"message-3\" "
                    "to=\"[email protected]/westminster\" "
                    "from=\"[email protected]/throne\" "
                    "type=\"chat\">"
                    "<received xmlns=\"urn:xmpp:chat-markers:0\" "
                               "id=\"message-2\"/>"
                "</message>");

    serialisationMessage.setMarkable(false);
    serialisationMessage.setMarker(QXmppMessage::Received, "message-2");
    serializePacket(serialisationMessage, receivedSerialisation);

    const QByteArray receivedThreadSerialisation(
                "<message "
                    "id=\"message-3\" "
                    "to=\"[email protected]/westminster\" "
                    "from=\"[email protected]/throne\" "
                    "type=\"chat\">"
                    "<received xmlns=\"urn:xmpp:chat-markers:0\" "
                               "id=\"message-2\" "
                               "thread=\"sleeping\"/>"
                "</message>");

    serialisationMessage.setMarker(QXmppMessage::Received, "message-2", "sleeping");
    serializePacket(serialisationMessage, receivedThreadSerialisation);

    const QByteArray displayedThreadSerialisation(
                "<message "
                    "id=\"message-3\" "
                    "to=\"[email protected]/westminster\" "
                    "from=\"[email protected]/throne\" "
                    "type=\"chat\">"
                    "<displayed xmlns=\"urn:xmpp:chat-markers:0\" "
                               "id=\"message-2\" "
                               "thread=\"sleeping\"/>"
                "</message>");

    serialisationMessage.setMarker(QXmppMessage::Displayed, "message-2", "sleeping");
    serializePacket(serialisationMessage, displayedThreadSerialisation);

    const QByteArray acknowledgedThreadSerialisation(
                "<message "
                    "id=\"message-3\" "
                    "to=\"[email protected]/westminster\" "
                    "from=\"[email protected]/throne\" "
                    "type=\"chat\">"
                    "<acknowledged xmlns=\"urn:xmpp:chat-markers:0\" "
                               "id=\"message-2\" "
                               "thread=\"sleeping\"/>"
                "</message>");

    serialisationMessage.setMarker(QXmppMessage::Acknowledged, "message-2", "sleeping");
    serializePacket(serialisationMessage, acknowledgedThreadSerialisation);
}
开发者ID:freedbrt,项目名称:qxmpp,代码行数:101,代码来源:tst_qxmppmessage.cpp

示例2: executeCommand

    bool XMPPChatMarkerCommand::executeCommand(QStringList * const arguments)
    {
        bool ret = false;
        if (arguments->length() not_eq 2)
        {
            this->client->write(tr("ERROR: xmppChatMarker <resource> <marker>") + "\r\n");
        }
        else
        {
            const QString resource = arguments->first();
            QXmppClient * const client =
                    XMPPResourceStore::instance()->getFromStore(resource);
            arguments->removeFirst();
            if (client)
            {
                QSharedPointer<QXmppStanza> lastStanza
                        = XMPPResourceStore::instance()->getLastMessageReceived(
                            client);
                if (lastStanza)
                {
                    const QSharedPointer<QXmppMessage> lastMsg
                            = lastStanza.dynamicCast<QXmppMessage>();
                    if (lastMsg and lastMsg->isMarkable())
                    {
                        bool markerOk = true;
                        QXmppMessage::Marker msgMarker;
                        const QString marker = arguments->first();
                        arguments->removeFirst();

                        if (marker == "received")
                        {
                            msgMarker = QXmppMessage::Received;
                        }
                        else if (marker == "displayed")
                        {
                            msgMarker = QXmppMessage::Displayed;
                        }
                        else if (marker == "acknowledged")
                        {
                            msgMarker = QXmppMessage::Acknowledged;
                        }
                        else
                        {
                            markerOk = false;
                        }

                        if (markerOk)
                        {
                            QXmppMessage markerMessage;
                            markerMessage.setId(QUuid::createUuid().toString());
                            markerMessage.setThread("");
                            markerMessage.setMarkable(false);
                            markerMessage.setTo(lastMsg->from());
                            markerMessage.setMarker(msgMarker, lastMsg->id());
                            markerMessage.addHint(QXmppMessage::AllowPermantStorage);
                            if (XMPPDebugCommand::isDebugEnabled())
                            {
                                XMPPPrintCommand::printMessage(
                                            true,
                                            &markerMessage);
                            }
                            ret = client->sendPacket(markerMessage);
                            if (not ret)
                            {
                                this->client->write(tr("ERROR: Failed to send packet") + "\r\n");
                            }
                            else
                            {
                                XMPPResourceStore::instance()->setLastMessageSent(
                                            client,
                                            markerMessage);
                            }
                        }
                        else
                        {
                            this->client->write(tr("ERROR: Invalid marker") + "\r\n");
                        }
                    }
                    else
                    {
                        this->client->write(tr("ERROR: The last message isn't Markable") + "\r\n");
                    }
                }
                else
                {
                    this->client->write(tr("ERROR: Can't find the last message received to mark")
                                        + "\r\n");
                }
            }
            else
            {
                this->client->write(tr("ERROR: Unknown resource") + "\r\n");
            }
        }
        return ret;
    }
开发者ID:Jendorski,项目名称:labs-truphone-cascades-test,代码行数:96,代码来源:XmppChatMarkerCommand.cpp


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