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