Return TypeFunction nameArguments
hzEcodehdbIndexUkey::Insert(const hzAtom&,unsigned int,)

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

Function Logic:

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

Function body:

hzEcode hdbIndexUkey::Insert (const hzAtom& atom, unsigned int objId)
{
   _hzfunc("hdbIndexUkey::Insert") ;
   hzChain     Z ;
   hzString    str ;
   hzDomain    dom ;
   hzEmaddr    ema ;
   hzUrl       url ;
   hzEcode     rc = E_OK ;
   if (!m_bInit)       return E_NOINIT ;
   if (atom.IsNull())  return E_NODATA ;
   if (atom.Type() != m_eBasetype)
       return hzerr(E_TYPE, "Index type %s - supplied value type %s", Basetype2Txt(m_eBasetype), Basetype2Txt(atom.Type())) ;
   switch (m_eBasetype)
   {
   case BASETYPE_DOMAIN:   _hzGlobal_setDomains.Insert(atom.Domain()) ;
                           dom = _hzGlobal_setDomains[atom.Domain()] ;
                           rc = m_keys.pDom->Insert(dom, objId) ;
                           break ;
   case BASETYPE_EMADDR:   _hzGlobal_setEmaddrs.Insert(atom.Emaddr()) ;
                           ema = _hzGlobal_setEmaddrs[atom.Emaddr()] ;
                           rc = m_keys.pEma->Insert(ema, objId) ;
                           break ;
   case BASETYPE_STRING:   _hzGlobal_setStrings.Insert(atom.Str()) ;
                           str = _hzGlobal_setStrings[atom.Str()] ;
                           rc = m_keys.pStr->Insert(str, objId) ;
                           break ;
   case BASETYPE_URL:      rc = m_keys.pUrl->Insert(atom.Url(), objId) ;       break ;
   case BASETYPE_XDATE:    rc = m_keys.pXD->Insert(atom.XDate(), objId) ;      break ;
   case BASETYPE_INT64:    rc = m_keys.pSI64->Insert(atom.Int64(), objId) ;    break ;
   case BASETYPE_UINT64:   rc = m_keys.pUI64->Insert(atom.Unt64(), objId) ;    break ;
   case BASETYPE_IPADDR:   rc = m_keys.pIpa->Insert(atom.Ipaddr(), objId) ;    break ;
   case BASETYPE_TIME:     rc = m_keys.pTime->Insert(atom.Time(), objId) ;     break ;
   case BASETYPE_SDATE:    rc = m_keys.pSD->Insert(atom.SDate(), objId) ;      break ;
   case BASETYPE_INT32:    rc = m_keys.pSI32->Insert(atom.Int32(), objId) ;    break ;
   case BASETYPE_UINT32:   rc = m_keys.pUI32->Insert(atom.Unt32(), objId) ;    break ;
   }
   if (rc == E_OK)
   {
       Z.Printf("@%u:%s\n", objId, atom.Show()) ;
   }
   return rc ;
}