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


C++ XSerializeEngine::read方法代码示例

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


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

示例1: load

/***
 *
 *  To verify that the content in the binary stream
 *  is the same as this class
 *
 ***/
void XProtoType::load(XSerializeEngine& serEng
                    , XMLByte* const    inName
                    , MemoryManager* const manager)
{
    if (!inName)
    {       
        ThrowXMLwithMemMgr(XSerializationException
               , XMLExcepts::XSer_ProtoType_Null_ClassName, manager);
    }

    // read and check class name length
    XMLSize_t inNameLen = XMLString::stringLen((char*)inName); 
    XMLSize_t classNameLen = 0;
    serEng >> (unsigned long&)classNameLen;

	if (classNameLen != inNameLen)
    {
        XMLCh value1[17];
        XMLCh value2[17];
        XMLString::binToText((unsigned long)inNameLen,    value1, 16, 10, manager);
        XMLString::binToText((unsigned long)classNameLen, value2, 16, 10, manager);

        ThrowXMLwithMemMgr2(XSerializationException
                , XMLExcepts::XSer_ProtoType_NameLen_Dif
                , value1
                , value2
                , manager);  
    }

    // read and check class name
	XMLByte  className[256];
    serEng.read(className, classNameLen*sizeof(XMLByte));
    className[classNameLen] = '\0';

    if ( !XMLString::equals((char*)className, (char*)inName))
    {
        //we don't have class name exceed this length in xerces
        XMLCh name1[256];
        XMLCh name2[256];
        XMLCh *tmp = XMLString::transcode((char*)inName, manager);
        XMLString::copyNString(name1, tmp, 255);
        manager->deallocate(tmp);
        tmp = XMLString::transcode((char*)className, manager);
        XMLString::copyNString(name2, tmp, 255);
        manager->deallocate(tmp);

        ThrowXMLwithMemMgr2(XSerializationException
                , XMLExcepts::XSer_ProtoType_Name_Dif
                , name1
                , name2
                , manager);
    }

    return;

}
开发者ID:AuditoryBiophysicsLab,项目名称:EarLab,代码行数:62,代码来源:XProtoType.cpp


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