Return TypeFunction nameArguments
hzAtom&hzAtom::Clear(void)

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

Function Logic:

0:START 1:m_eStatus==ATOM_CLEAR 2:m_eType==BASETYPE_UNDEF 3:m_Data.m_uInt64 4:m_Data m_eStatus m_eType 5:m_Data.m_uInt64 6:Basetype2Txt 7:m_Data m_eStatus m_eType 8:Return *this 9:m_eStatus==ATOM_ERROR 10:m_eType!=BASETYPE_UNDEF 11:Basetype2Txt 12:m_Data.m_uInt64 13:m_Data m_eStatus m_eType 14:Return *this 15:m_eStatus==ATOM_SET 16:m_eType==BASETYPE_UNDEF 17:hzexit 18:hzexit 19:m_eType==BASETYPE_DIGEST 20:m_Data.m_pVoid 21:[](uchar*)m_Data.m_pVoid 22:m_Data.m_uInt32 23:m_eType==BASETYPE_STRING 24:hzString::_int_set hzString::Clear 25:m_eType==BASETYPE_DOMAIN 26:hzString::_int_set hzString::Clear 27:m_eType==BASETYPE_EMADDR 28:hzString::_int_set hzString::Clear 29:m_eType==BASETYPE_URL 30:hzString::_int_set hzString::Clear 31:m_Data m_eType m_eStatus 32:Return *this

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