本文整理汇总了C++中ITypeInfo::serialize方法的典型用法代码示例。如果您正苦于以下问题:C++ ITypeInfo::serialize方法的具体用法?C++ ITypeInfo::serialize怎么用?C++ ITypeInfo::serialize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITypeInfo
的用法示例。
在下文中一共展示了ITypeInfo::serialize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: serializeElement
static void serializeElement(MemoryBuffer & target, IDefRecordElement * elem)
{
byte kind = elem ? elem->getKind() : DEKnone;
target.append(kind);
switch (kind)
{
case DEKnone:
break;
case DEKrecord:
{
size32_t maxSize = elem->getMaxSize();
unsigned numChildren = elem->numChildren();
target.append(maxSize).append(numChildren);
for (unsigned i=0; i < numChildren; i++)
serializeElement(target, elem->queryChild(i));
break;
}
case DEKifblock:
{
IValue * value = elem->queryCompareValue();
serializeValue(target, value);
serializeElement(target, elem->queryChild(0));
serializeElement(target, elem->queryChild(1));
break;
}
case DEKfield:
{
_ATOM name = elem->queryName();
ITypeInfo * type = elem->queryType();
size32_t maxSize = elem->getMaxSize();
serializeAtom(target, name);
type->serialize(target);
serializeElement(target, elem->queryChild(0));
target.append(maxSize);
break;
}
default:
throwUnexpected();
}
}