Return Type | Function name | Arguments |
---|---|---|
hzEcode | hdbADP::RegisterDataClass | (const hdbClass*,) |
Declared in file: hzDatabase.h
Defined in file : hdbClass.cpp
Function Logic:
Function body:
hzEcode hdbADP::RegisterDataClass (const hdbClass* pClass) { _hzfunc("hdbADP::RegisterDataClass") ; if (!this) hzexit(E_CORRUPT, "No ADP instance") ; if (!pClass) return E_ARGUMENT ; if (!pClass->strType()) return E_NOINIT ; if (pClass->ClassId()) return hzerr(E_DUPLICATE, "Data class %s already registered with id %d", pClass->txtType(), pClass->ClassId()) ; if (m_mapDatatypes.Exists(pClass->strType())) return hzerr(E_DUPLICATE, "Data type %s already registered. Cannot admit class of this name", pClass->txtType()) ; switch (pClass->Designation()) { case HDB_CLASS_DESIG_SYS: if (pClass->strType() == "subscriber") pClass->_setId(HZ_ADP_CLS_SUBSCRIBER) ; else if (pClass->strType() == "siteindex") pClass->_setId(HZ_ADP_CLS_SITEINDEX) ; else if (pClass->strType() == "FinCurrency") pClass->_setId(HZ_ADP_CLS_FIN_CRCY) ; else if (pClass->strType() == "FinCategory") pClass->_setId(HZ_ADP_CLS_FIN_CAT) ; else if (pClass->strType() == "FinAccount") pClass->_setId(HZ_ADP_CLS_FIN_ACC) ; else if (pClass->strType() == "FinTransaction") pClass->_setId(HZ_ADP_CLS_FIN_TRNS) ; else { hzerr(E_BADVALUE, "Unrecognized System Class (%s)", pClass->txtType()) ; return E_BADVALUE ; } break ; case HDB_CLASS_DESIG_USR: pClass->_setId(m_nsqClsUsr++) ; break ; case HDB_CLASS_DESIG_CFG: pClass->_setId(m_nsqClsCfg++) ; break ; } if (!pClass->ClassId()) return hzerr(E_NOINIT, "Data class %s did not aquire a delta id", pClass->txtType()) ; m_mapDatatypes.Insert(pClass->strType(), pClass) ; m_mapClasses.Insert(pClass->strType(), pClass) ; m_mapClsCtxName.Insert(pClass->strType(), pClass->ClassId()) ; m_mapClsCtxDtId.Insert(pClass->ClassId(), pClass) ; threadLog("Inserted %s\n", *pClass->strType()) ; return E_OK ; }