Return TypeFunction nameArguments
hzEcodeReadSerialUINT64(unsigned long&,unsigned int&,const unsigned char*,)

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

Function Logic:

0:START 1:!ptr 2:Return hzerr(E_ARGUMENT,No length indicator supplied) 3:*ptr&0x80 4:nLen nValue 5:nLen 6:0 7:nValue nValue

Function body:

hzEcode ReadSerialUINT64 (unsigned long& nValue, unsigned int& nLen, const unsigned char* ptr)
{
   uint64_t    inc ;
   if (!ptr)
       return hzerr(E_ARGUMENT, "No length indicator supplied") ;
   if (*ptr & 0x80)
   {
       nLen = (*ptr & 0x78)>>3;
       nValue = *ptr & 0x07;
       switch (nLen)
       {
       case 0:     nValue <<&eq; 8;   nValue += ptr[1];                           break ;
       case 1:     nValue <<&eq; 16;  _endian_import2(inc, ptr+1); nValue += inc ;    break ;
       case 2:     nValue <<&eq; 24;  _endian_import3(inc, ptr+1); nValue += inc ;    break ;
       case 3:     nValue <<&eq; 32;  _endian_import4(inc, ptr+1); nValue += inc ;    break ;
       case 4:     nValue <<&eq; 40;  _endian_import5(inc, ptr+1); nValue += inc ;    break ;
       case 5:     nValue <<&eq; 48;  _endian_import6(inc, ptr+1); nValue += inc ;    break ;
       case 6:     nValue <<&eq; 56;  _endian_import7(inc, ptr+1); nValue += inc ;    break ;
       default:
           _endian_import8(nValue, ptr+1);
           break ;
       }
   }
   else
   {
       nLen = 1;
       nValue = *ptr & 0x7f;
   }
   return E_OK ;
}