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


C++ StringStack::end方法代码示例

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


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

示例1: doType

void MessageGenerator::doType(StringStack& parent, int indent, const char* tag, IXmlType* type, StringBuffer& buf)
{
    const char* typeName = type->queryName();

    if (type->isComplexType())
    {
        if (typeName && std::find(parent.begin(),parent.end(),typeName) != parent.end())
        {
            //DBGLOG("Recursive type: %s, ignored", type->queryName());
        }
        else 
        {
            int flds = type->getFieldCount();
            for (int i=0; i<flds; i++)
            {
                const char* fldName = type->queryFieldName(i);
                buf.appendf("<%s>", fldName);
                if (typeName)
                    parent.push_back(typeName);
                doType(parent,indent+1,fldName,type->queryFieldType(i),buf);
                buf.appendf("</%s>", fldName);
                if (typeName)
                    parent.pop_back();
            }
        }
    }
    else if (type->isArray())
    {
        if (typeName && std::find(parent.begin(),parent.end(),typeName) != parent.end())
        {
            //DBGLOG("Recursive type: %s, ignored", type->queryName());
        }
        else
        {
            const char* itemName = type->queryFieldName(0);
            IXmlType* itemType = type->queryFieldType(0);
            if (typeName)
                parent.push_back(typeName);
            for (int i=0; i<m_items; i++)
            {
                buf.appendf("<%s>", itemName);
                doType(parent,indent+2,itemName, itemType, buf);
                buf.appendf("</%s>", itemName);
            }
            if (m_ecl2esp)
                buf.appendf("<%s/>", itemName);
            if (typeName)
                parent.pop_back();
        }
    }
    else
    {
        //TODO: handle restriction etc
        if (strcmp(typeName,"string")==0) // string type: [tag-typeName]
        {
            if (m_gx)
                buf.append("*** MISSING ***");
            else
                if (m_ecl2esp)
                    buf.append("[?]");
                else
                    buf.appendf("[%s]", tag);
        }
        else
            setDefaultValue(buf,type,tag);
    }
}
开发者ID:AlexLuya,项目名称:HPCC-Platform,代码行数:67,代码来源:msggenerator.cpp


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