| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hdbIndexUkey::Insert | (const hzAtom&,unsigned int,) |
Declared in file: hzDatabase.h
Defined in file : hdbIndex.cpp
Function Logic:
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 ;
}