| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | ReadSerialUINT32 | (unsigned int&,hzXbuf::Iter&,) |
Declared in file: hzCodec.h
Defined in file : hzCodec.cpp
Function Logic:
Function body:
hzEcode ReadSerialUINT32 (unsigned int& nValue, hzXbuf::Iter& zi)
{
uint32_t val = 0;
if (zi.eof())
{
nValue = 0;
return E_OK ;
}
if (!(*zi & 0x80))
{
val = *zi & 0x7f;
zi++ ;
nValue = val ;
return E_OK ;
}
switch (*zi & 0xE0)
{
case 0x80:
val = ((*zi & 0x1f)<<8);
zi++ ; val += *zi ;
break ;
case 0xA0:
val = ((*zi & 0x1f)<<16);
zi++ ; val += (*zi << 8);
zi++ ; val += *zi ;
break ;
case 0xC0:
val = ((*zi & 0x1f)<<24);
zi++ ; val += (*zi << 16);
zi++ ; val += (*zi << 8);
zi++ ; val += *zi ;
break ;
case 0xE0:
zi++ ; val = (*zi << 24);
zi++ ; val += (*zi << 16);
zi++ ; val += (*zi << 8);
zi++ ; val += *zi ;
break ;
}
zi++ ;
nValue = val ;
return E_OK ;
}