Return Type | Function name | Arguments |
---|---|---|
hzEcode | ReadSerialUINT64 | (unsigned long&,hzXbuf::Iter&,) |
Declared in file: hzCodec.h
Defined in file : hzCodec.cpp
Function Logic:
Function body:
hzEcode ReadSerialUINT64 (unsigned long& nValue, hzXbuf::Iter& zi) { uint64_t val ; uint32_t n ; val = nValue = 0; if (zi.eof()) return E_OK ; if (!(*zi & 0x80)) { nValue = *zi & 0x7f; zi++ ; return E_OK ; } switch (*zi & 0xF0) { case 0x80: val = *zi & 0x0f; val <<&eq; 8; zi++ ; val += *zi ; break ; case 0x90: val = *zi & 0x0f;for(n = 2; n ; n--) { val <<&eq; 8; zi++ ; val += *zi ; } break ; case 0xA0: val = *zi & 0x0f;for(n = 3; n ; n--) { val <<&eq; 8; zi++ ; val += *zi ; } break ; case 0xB0: val = *zi & 0x0f;for(n = 4; n ; n--) { val <<&eq; 8; zi++ ; val += *zi ; } break ; case 0xC0: val = *zi & 0x0f;for(n = 5; n ; n--) { val <<&eq; 8; zi++ ; val += *zi ; } break ; case 0xD0: val = *zi & 0x0f;for(n = 6; n ; n--) { val <<&eq; 8; zi++ ; val += *zi ; } break ; case 0xE0: val = *zi & 0x0f;for(n = 7; n ; n--) { val <<&eq; 8; zi++ ; val += *zi ; } break ; case 0xF0: zi++ ; val = *zi ; for (n = 7; n ; n--) { val <<&eq; 8; zi++ ; val += *zi ; } break ; } nValue = val ; return E_OK ; }