Return TypeFunction nameArguments
hzEcodehdbIndexUkey::Delete(const hzAtom&,)

Declared in file: hzDatabase.h
Defined in file : hdbIndex.cpp

Function Logic:

0:START 1:!m_bInit 2:Return E_NOINIT 3:key.IsNull() 4:Return E_NODATA 5:key.Type()!=m_eBasetype 6:Return hzerr(E_TYPE,Index type %s - supplied value type %s,Basetype2Txt(m_eBasetype),Basetype2Txt(key.Type())) 7:m_eBasetype 8:BASETYPE_DOMAIN 9:hzAtom::Domain dom 10:dom 11:hzDomain::Clear hzMapS::Delete rc

Function body:

hzEcode hdbIndexUkey::Delete (const hzAtom& key)
{
   _hzfunc("hdbIndexUkey::Delete") ;
   hzString    str ;
   hzDomain    dom ;
   hzEmaddr    ema ;
   hzUrl       url ;
   hzEcode     rc = E_OK ;
   if (!m_bInit)       return E_NOINIT ;
   if (key.IsNull())   return E_NODATA ;
   if (key.Type() != m_eBasetype)
       return hzerr(E_TYPE, "Index type %s - supplied value type %s", Basetype2Txt(m_eBasetype), Basetype2Txt(key.Type())) ;
   switch (m_eBasetype)
   {
   case BASETYPE_DOMAIN:   dom = key.Domain() ;
                           if (dom)
                           {
                               _hzGlobal_setDomains[dom].Clear() ;
                               rc = m_keys.pDom->Delete(dom) ;
                           }
                           break ;
   case BASETYPE_EMADDR:   ema = key.Emaddr() ;
                           if (ema)
                           {
                               _hzGlobal_setEmaddrs[ema].Clear() ;
                               rc = m_keys.pEma->Delete(ema) ;
                           }
                           break ;
   case BASETYPE_STRING:   str = key.Str() ;
                           if (str)
                           {
                               _hzGlobal_setStrings[str].Clear() ;
                               rc = m_keys.pStr->Delete(str) ;
                           }
                           break ;
   case BASETYPE_URL:      url = key.Url() ;
                           if (url)
                           {
                               rc = m_keys.pUrl->Delete(url) ;
                           }
                           break ;
   case BASETYPE_DOUBLE:
   case BASETYPE_XDATE:
   case BASETYPE_INT64:
   case BASETYPE_UINT64:   rc = m_keys.pUI64->Delete(key.Unt64()) ;    break ;
   case BASETYPE_IPADDR:
   case BASETYPE_TIME:
   case BASETYPE_SDATE:
   case BASETYPE_INT32:
   case BASETYPE_UINT32:   rc = m_keys.pUI32->Delete(key.Unt32()) ;    break ;
   } ;
   return rc ;
}