Return Type | Function name | Arguments |
---|---|---|
hzEcode | hdbClass::InitDone | (void) |
Declared in file: hzDatabase.h
Defined in file : hdbClass.cpp
Function Logic:
Function body:
hzEcode hdbClass::InitDone (void) { _hzfunc("hdbClass::InitDone") ; const hdbMember* pMbr ; uint32_t mbrNo ; uint32_t nSofar ; if (m_eClassInit != HDB_CLASS_INIT_PROG) return hzerr(E_SEQUENCE, "Called out of sequence (must be after InitStart() and at least one call to InitMember()") ; nSofar = 0; for (mbrNo = 0; mbrNo < m_arrMembers.Count() ; mbrNo++) { pMbr = m_arrMembers[mbrNo] ; if (pMbr->Basetype() == BASETYPE_ENUM) continue ; if (pMbr->SizeCore() < 16) continue ; pMbr->_setOset(nSofar) ; nSofar += 16; } for (mbrNo = 0; mbrNo < m_arrMembers.Count() ; mbrNo++) { pMbr = m_arrMembers[mbrNo] ; if (pMbr->Basetype() == BASETYPE_ENUM) continue ; if (pMbr->Basetype() == BASETYPE_BINARY || pMbr->Basetype() == BASETYPE_TXTDOC) { pMbr->_setAux(nSofar) ; nSofar += 8; continue ; } if (pMbr->SizeCore() != 8) continue ; pMbr->_setOset(nSofar) ; nSofar += 8; } for (mbrNo = 0; mbrNo < m_arrMembers.Count() ; mbrNo++) { pMbr = m_arrMembers[mbrNo] ; if (pMbr->Basetype() == BASETYPE_BINARY || pMbr->Basetype() == BASETYPE_TXTDOC) { pMbr->_setOset(nSofar) ; nSofar += 4; continue ; } if (pMbr->Basetype() == BASETYPE_ENUM) continue ; if (pMbr->SizeCore() != 4) continue ; pMbr->_setOset(nSofar) ; nSofar += 4; } for (mbrNo = 0; mbrNo < m_arrMembers.Count() ; mbrNo++) { pMbr = m_arrMembers[mbrNo] ; if (pMbr->Basetype() == BASETYPE_ENUM) continue ; if (pMbr->SizeCore() != 2) continue ; pMbr->_setOset(nSofar) ; nSofar += 2; } for (mbrNo = 0; mbrNo < m_arrMembers.Count() ; mbrNo++) { pMbr = m_arrMembers[mbrNo] ; if (pMbr->Basetype() != BASETYPE_ENUM) continue ; pMbr->_setOset(nSofar) ; nSofar += pMbr->SizeCore() ; } for (mbrNo = 0; mbrNo < m_arrMembers.Count() ; mbrNo++) { pMbr = m_arrMembers[mbrNo] ; if (pMbr->Basetype() == BASETYPE_BOOL) continue ; if (pMbr->Basetype() == BASETYPE_TBOOL) { m_nLitmusBits++ ; continue ; } } m_nLitmusBits += m_arrMembers.Count() ; m_nLitmusSize = m_nLitmusBits/8; if (m_nLitmusBits%8) m_nLitmusSize++ ; m_nCoreLen = nSofar ; for (mbrNo = 0; mbrNo < m_arrMembers.Count() ; mbrNo++) { pMbr = m_arrMembers[mbrNo] ; threadLog("Mbr %u %s: Posn %u Datum %u Core %u oset %d aux %d\n", mbrNo, pMbr->txtName(), pMbr->Posn(), pMbr->SizeDatum(), pMbr->SizeCore(), pMbr->OsetStd(), pMbr->OsetAux()) ; } threadLog("Class %s complete, core len %u\n", txtName(), m_nCoreLen) ; m_eClassInit = HDB_CLASS_INIT_DONE ; return E_OK ; }