本文整理汇总了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;
}