| Return Type | Function name | Arguments |
|---|---|---|
| hzAtom& | hzAtom::Clear | (void) |
Declared in file: hzDatabase.h
Defined in file : hzAtom.cpp
Function Logic:
Function body:
hzAtom& hzAtom::Clear (void)
{
_hzfunc("hzAtom::Clear") ;
if (m_eStatus == ATOM_CLEAR)
{
if (m_eType == BASETYPE_UNDEF)
{
if (m_Data.m_uInt64)
hzerr(E_CORRUPT, "Atom status clear, no data type but non-zero value") ;
m_Data.m_uInt64 = 0;
m_eStatus = ATOM_CLEAR ;
m_eType = BASETYPE_UNDEF ;
}
else
{
if (m_Data.m_uInt64)
hzerr(E_CORRUPT, "Atom status clear but has data type and value") ;
else
hzerr(E_CORRUPT, "Atom status clear, no value but type %s", Basetype2Txt(m_eType)) ;
m_Data.m_uInt64 = 0;
m_eStatus = ATOM_CLEAR ;
m_eType = BASETYPE_UNDEF ;
}
return *this ;
}
if (m_eStatus == ATOM_ERROR)
{
if (m_eType != BASETYPE_UNDEF) hzerr(E_CORRUPT, "Atom status error - but with data type %s", Basetype2Txt(m_eType)) ;
if (m_Data.m_uInt64) hzerr(E_CORRUPT, "Atom status error - but with value") ;
m_Data.m_uInt64 = 0;
m_eStatus = ATOM_CLEAR ;
m_eType = BASETYPE_UNDEF ;
return *this ;
}
if (m_eStatus == ATOM_SET)
{
if (m_eType == BASETYPE_UNDEF)
hzexit(E_CORRUPT, "Atom status set but no data type") ;
}
else
{
hzexit(E_CORRUPT, "Atom status unknown") ;
}
if (m_eType == BASETYPE_DIGEST)
{
if (m_Data.m_pVoid)
delete [] (uchar*) m_Data.m_pVoid ;
}
if (m_Data.m_uInt32)
{
if (m_eType == BASETYPE_STRING)
{
hzString tmp ;
tmp._int_set(m_Data.m_uInt32) ;
tmp.Clear() ;
}
if (m_eType == BASETYPE_DOMAIN)
{
hzDomain tmp ;
tmp._int_set(m_Data.m_uInt32) ;
tmp.Clear() ;
}
if (m_eType == BASETYPE_EMADDR)
{
hzEmaddr tmp ;
tmp._int_set(m_Data.m_uInt32) ;
tmp.Clear() ;
}
if (m_eType == BASETYPE_URL)
{
hzUrl tmp ;
tmp._int_set(m_Data.m_uInt32) ;
tmp.Clear() ;
}
}
m_Data.m_uInt64 = 0;
m_eType = BASETYPE_UNDEF ;
m_eStatus = ATOM_CLEAR ;
return *this ;
}