Convert a serialized integer into a 64-bit unsigned integer.
| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | ReadSerialUINT64 | (uint64_t&,hzChain::Iter&,) |
Declared in file: hzCodec.h
Defined in file : hzCodec.cpp
Function Logic:
Function body:
hzEcode ReadSerialUINT64 (uint64_t& nValue)hzChain::Iter& zi,
{
// Category: Number Serialization
//
// Convert a serialized integer into a 64-bit unsigned integer.
//
// Arguments: 1) nValue Indicated length or value
// 2) zi Chain iterator (start of indicator)
//
// Returns: E_ARGUMENT If no ptr is supplied
// E_OK Operation successful
uint64_t val ; // Value
uint32_t nLen ; // Length of serial integer
uint32_t n ; // Counter
if (!(*zi & 0x80))
{
val = *zi & 0x7f;
zi++ ;
}
else
{
// Top bit set so indicator length will be ...
nLen = (*zi & 0x70)>>4;
nLen += 2;
val = *zi & 0x0f;
if (nLen == 9)
{
// Max value, next 8 bytes are the number
val = 0;
}
for (n = nLen == 9? 1: 2; n < nLen ; n++)
{
zi++ ;
val <<&eq; 8;
val += *zi ;
}
}
nValue = val ;
return E_OK ;
}