Convert a serialized integer into a 64-bit unsigned integer.

Return TypeFunction nameArguments
hzEcodeReadSerialUINT64(uint64_t&,hzChain::Iter&,)

Declared in file: hzCodec.h
Defined in file : hzCodec.cpp

Function Logic:

0:START 1:unknown 2:* 3:val items 4:items nLen * val 5:unknown 6:val 7:unknown 8:items val val 9:nValue 10:Return E_OK

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 ;
}