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


C++ XmlElement::getStanzaPtr方法代码示例

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


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

示例1: addErrorToStanza

void Util::addErrorToStanza(XmlElement& stanza,
                            const std::string& errorType,
                            const std::string& condition,
                            const std::string& ns,
                            const std::string& appSpecificCondition,
                            const std::string& appSpecificNs)
{
    xmpp_stanza_t* stanzaPtr {stanza.getStanzaPtr()};
    xmpp_ctx_t* ctx {stanzaPtr->ctx};
    xmpp_stanza_t* errorElem {xmpp_stanza_new(ctx)};
    xmpp_stanza_t* cond {xmpp_stanza_new(ctx)};
    
    xmpp_stanza_set_name(errorElem, "error");
    xmpp_stanza_set_type(errorElem, errorType.c_str());
    xmpp_stanza_set_name(cond, condition.c_str());
    xmpp_stanza_set_ns(cond, ns.c_str());
    xmpp_stanza_add_child(errorElem, cond);

    if(not appSpecificCondition.empty() and not appSpecificNs.empty())
    {
        xmpp_stanza_t* otherCond {xmpp_stanza_new(ctx)};

        xmpp_stanza_set_name(otherCond, appSpecificCondition.c_str());
        xmpp_stanza_set_ns(otherCond, appSpecificNs.c_str());
        xmpp_stanza_add_child(errorElem, otherCond);
    }

    xmpp_stanza_set_attribute(stanzaPtr, "type", "error");
    xmpp_stanza_add_child(stanzaPtr, errorElem);
}
开发者ID:royneary,项目名称:oshiya,代码行数:30,代码来源:XmppUtils.cpp

示例2: switchFromTo

void Util::switchFromTo(XmlElement& stanza)
{
    xmpp_stanza_t* stanzaPtr {stanza.getStanzaPtr()};
    std::string from {makeString(xmpp_stanza_get_attribute(stanzaPtr, "from"))};
    std::string to {makeString(xmpp_stanza_get_attribute(stanzaPtr, "to"))};
    xmpp_stanza_set_attribute(stanzaPtr, "from", to.c_str());
    xmpp_stanza_set_attribute(stanzaPtr, "to", from.c_str());
}
开发者ID:royneary,项目名称:oshiya,代码行数:8,代码来源:XmppUtils.cpp

示例3: parseXData

XData Util::parseXData(const XmlElement& el)
{
    xmpp_stanza_t* elPtr {el.getStanzaPtr()};
    xmpp_stanza_t* field {xmpp_stanza_get_children(elPtr)};  

    std::string type {makeString(xmpp_stanza_get_type(elPtr))};
     
    XData ret {type};

    while(field)
    {
        if(makeString(xmpp_stanza_get_name(field)) == "field")
        {
            std::string fieldType {makeString(xmpp_stanza_get_type(field))};
            std::string var {makeString(xmpp_stanza_get_attribute(field, "var"))};

            std::vector<std::string> values;

            xmpp_stanza_t* value {xmpp_stanza_get_children(field)};

            while(value)
            {
                if(makeString(xmpp_stanza_get_name(value)) == "value")
                {
                    char* text {xmpp_stanza_get_text(value)};
                    values.emplace_back(makeString(text));
                    xmpp_free(value->ctx, text);
                }

                value = xmpp_stanza_get_next(value);
            }

            XData::Field newField {fieldType, var, values};

            if(not newField.isValid())
            {
                throw std::runtime_error {""};
            }

            ret.addField(newField);
        }

        field = xmpp_stanza_get_next(field);
    }

    return ret;
}
开发者ID:royneary,项目名称:oshiya,代码行数:47,代码来源:XmppUtils.cpp


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