Return Type | Function name | Arguments |
---|---|---|
unsigned int | GetCountryByCode | (const char*,) |
Declared in file: hzIpaddr.h
Defined in file : hzIpaddr.cpp
Function Logic:
Function body:
unsigned int GetCountryByCode (const char* ccode) { _hzfunc(__func__) ; const char* i ; uint32_t nDiv ; uint32_t nPos ; int32_t res ; bool bFound ; if (!s_CC_buffer) return 0; if (!ccode) return 0; if (!ccode[0]) return 0; if (ccode[2]) return 0; if (ccode[0]< ''A''||ccode[0]> ''Z'')return0; if (ccode[1]< ''A''||ccode[1]> ''Z'')return0; if (!s_CC_start) return 0; nPos = s_CC_start ; bFound = false ; for (nDiv = s_CC_div ;; nDiv /= 2) { if (nPos > s_CC_max) { if (!nDiv) break ; nPos -= nDiv ; continue ; } i = s_CC_buffer + s_CC_offsets[nPos] ; if (i[0]> ccode[0]) res = -1; else if (i[0]< ccode[0]) res = 1; else res = i[1]> ccode[1]? -1: i[1]< ccode[1]? 1: 0; if (res > 0) { if (!nDiv) break ; nPos += nDiv ; continue ; } if (res < 0) { if (!nDiv) break ; nPos -= nDiv ; continue ; } bFound = true ; break ; } return bFound ? nPos : 0; }