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


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

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


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

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