| Return Type | Function name | Arguments |
|---|---|---|
| void | hzEmaddr::Clear | (void) |
Declared in file: hzEmaddr.h
Defined in file : hzEmaddr.cpp
Function Logic:
Function body:
void hzEmaddr::Clear (void)
{
_hzfunc("hzEmaddr::Clear") ;
_ema_space* pCtrl ;
uint32_t nLen ;
hzEcode rc = E_OK ;
if (m_addr)
{
pCtrl = (_ema_space*) g_ssrInet.Xlate(m_addr) ;
if (!pCtrl)
hzexit(E_CORRUPT, "Illegal string address %u:%u", (m_addr&0x7fff0000)>>16,m_addr&0xffff);
if (pCtrl->m_copy == 0)
{ threadLog("Deletion in progress address %u:%u\n", (m_addr&0x7fff0000)>>16,m_addr&0xffff);m_addr=0;return;}
if (pCtrl->m_copy == 0xff)
{
threadLog("CORRUPT: Invalid email addr (cpy %u lhs %u rhs %u) address %u:%u\n", pCtrl->m_copy, pCtrl->m_lhs, pCtrl->m_rhs, (m_addr&0x7fff0000)>>16,m_addr&0xffff);
m_addr = 0;
return ;
}
if (pCtrl->m_copy && pCtrl->m_copy < 100)
{
if (_hzGlobal_MT)
__sync_add_and_fetch(&(pCtrl->m_copy), -1);
else
pCtrl->m_copy-- ;
if (pCtrl->m_copy == 0)
{
nLen = pCtrl->m_lhs + pCtrl->m_rhs + 1;
rc = g_ssrInet.Free(m_addr, nLen + EMA_FACTOR) ;
}
}
m_addr = 0;
}
if (rc != E_OK)
threadLog("Email address %s not deleted\n", pCtrl->m_data) ;
}