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