本文整理汇总了C++中Writer::add方法的典型用法代码示例。如果您正苦于以下问题:C++ Writer::add方法的具体用法?C++ Writer::add怎么用?C++ Writer::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Writer
的用法示例。
在下文中一共展示了Writer::add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
SimpleProperties::UnpackStatus
SimpleProperties::pack(Writer & it, const void * __src,
const SP2StructMapping _map[], Uint32 mapSz,
bool ignoreMinMax){
const char * _src = (const char *)__src;
for(Uint32 i = 0; i<mapSz; i++){
bool ok = false;
const char * src = _src + _map[i].Offset;
switch(_map[i].Type){
case SimpleProperties::InvalidValue:
ok = true;
break;
case SimpleProperties::Uint32Value:{
Uint32 val = * ((Uint32*)src);
if(!ignoreMinMax){
if(val < _map[i].minValue)
return ValueTooLow;
if(val > _map[i].maxValue)
return ValueTooHigh;
}
ok = it.add(_map[i].Key, val);
}
break;
case SimpleProperties::BinaryValue:{
const char * src_len = _src + _map[i].Length_Offset;
Uint32 len = *((Uint32*)src_len);
if(!ignoreMinMax){
if(len > _map[i].maxValue)
return ValueTooHigh;
}
ok = it.add(_map[i].Key, src, len);
break;
}
case SimpleProperties::StringValue:
if(!ignoreMinMax){
size_t len = strlen(src);
if(len > _map[i].maxValue)
return ValueTooHigh;
}
ok = it.add(_map[i].Key, src);
break;
}
if(!ok)
return OutOfMemory;
}
return Eof;
}