| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | InitCountryCodes | (void) |
Declared in file: hzIpaddr.h
Defined in file : hzIpaddr.cpp
Function Logic:
Function body:
hzEcode InitCountryCodes (void)
{
_hzfunc(__func__) ;
ifstream is ;
FSTAT fs ;
char* pCC_buf ;
uint16_t* pShort ;
uint32_t n ;
int32_t fd ;
hzEcode rc = E_OK ;
fd = shm_open("deltaCountryCodes", O_RDONLY, 0);
if (fd < 0)
return hzerr(E_INITFAIL, "Cannot initialize shared memory segment (deltaCountryCodes)\n") ;
fstat(fd, &fs);
threadLog("Set fd to %d\n", fd) ;
pCC_buf = (char*) mmap(0,fs.st_size, PROT_READ, MAP_SHARED, fd, 0);
if (!pCC_buf)
return hzerr(E_INITFAIL, "Could not map Shared memory segment. Errno %d", errno) ;
threadLog("Country codes mem at %p, size is %d\n", pCC_buf, fs.st_size) ;
pShort = (uint16_t*) pCC_buf ;
s_CC_max = *pShort++ ;
threadLog("Total codes %d\n", s_CC_max) ;
s_CC_offsets = pShort ;
threadLog("Offsets at %p\n", s_CC_offsets) ;
pShort += s_CC_max ;
s_CC_buffer = (char*) pShort ;
threadLog("Buffer at %p\n", s_CC_buffer) ;
for (n = 2; n <&eq; s_CC_max ; n *= 2);
s_CC_div = n / 2;
s_CC_start = n - 1;
threadLog("Total codes %d (div %d start %d)\n\n", s_CC_max, s_CC_div, s_CC_start) ;
/*
** for (n = 0 ; n < s_CC_max ; n++)
** threadLog("%s -> %s (%d)\n", s_CC_buffer + s_CC_offsets[n], s_CC_buffer + s_CC_offsets[n] + 3, s_CC_offsets[n]) ;
** */
return rc ;
}