In IMM, for PBE, IMM uses the mix type of unsigned int and signed int for Class ID and Object ID. These data are stored in sqlite3 data base as 32-bit integers. Cast is used when reading data back from sqlite3 data base.
Applying Google C++ Style Guide, Class ID and Object ID are now signed int. One minor code change in the affected area is implemented to fix Static Code Checker error. --- src/imm/common/immpbe_dump.cc | 44 ++++++++++++++++++++-------------------- src/imm/common/immpbe_dump.h | 10 ++++----- src/imm/immpbed/immpbe.h | 2 +- src/imm/immpbed/immpbe_daemon.cc | 18 ++++++++-------- 4 files changed, 36 insertions(+), 38 deletions(-) diff --git a/src/imm/common/immpbe_dump.cc b/src/imm/common/immpbe_dump.cc index e6b3cc5..ee8950d 100644 --- a/src/imm/common/immpbe_dump.cc +++ b/src/imm/common/immpbe_dump.cc @@ -150,8 +150,8 @@ static const char *preparedSql[] = { static sqlite3_stmt *preparedStmt[SQL_STMT_SIZE] = {NULL}; struct ObjectInfo { - unsigned obj_id; - unsigned class_id; + int obj_id; + int class_id; char *dn; }; @@ -569,8 +569,8 @@ void pbeAtomicSwitchFile(const char *filePath, std::string localTmpFilename) { // Reverse object DN and use the reverse DN as key in sReverseDnMap // which is used mainly to collect child objects when we perform cascade delete. static void reverseAndInsertDn(const std::string &dn, - unsigned obj_id, - unsigned class_id) { + int obj_id, + int class_id) { ObjectInfo *info = new ObjectInfo(); osafassert(info); @@ -596,8 +596,8 @@ static bool prepareLocalData(sqlite3 *dbHandle) { sqlite3_stmt *stmt = nullptr; int rc; bool ret = false; - unsigned obj_id; - unsigned class_id; + int obj_id; + int class_id; char *class_name; std::string dn; int count = 0; @@ -611,7 +611,7 @@ static bool prepareLocalData(sqlite3 *dbHandle) { } while((rc = sqlite3_step(stmt)) == SQLITE_ROW) { - class_id = static_cast<unsigned>(sqlite3_column_int(stmt, 0)); + class_id = sqlite3_column_int(stmt, 0); class_name = const_cast<char*>(reinterpret_cast<const char *> (sqlite3_column_text(stmt, 1))); @@ -707,7 +707,7 @@ static bool deleteObjectList(sqlite3 *dbHandle, sqlite3_stmt *stmt = nullptr; int rc = 0; bool ret = false; - unsigned object_id; + int object_id; TRACE_ENTER(); @@ -1225,7 +1225,7 @@ void pbeCleanTmpFiles(std::string localTmpFilename) { } ClassInfo *classToPBE(std::string classNameString, SaImmHandleT immHandle, - void *db_handle, unsigned int class_id) { + void *db_handle, int class_id) { SaImmClassCategoryT classCategory; SaImmAttrDefinitionT_2 **attrDefinitions; SaAisErrorT errorCode; @@ -1563,7 +1563,7 @@ static ClassInfo *verifyClassPBE(std::string classNameString, void *db_handle, bool *badfile) { sqlite3 *dbHandle = (sqlite3 *)db_handle; int rc = 0; - unsigned int class_id = 0; + int class_id = 0; ClassInfo *classInfo = NULL; sqlite3_stmt *stmt; @@ -2479,9 +2479,9 @@ bailout: } int dumpInstancesOfClassToPBE(SaImmHandleT immHandle, ClassMap *classIdMap, - std::string className, unsigned int *objIdCount, + std::string className, int *objIdCount, void *db_handle) { - unsigned int obj_count = 0; + int obj_count = 0; SaImmSearchHandleT searchHandle; SaAisErrorT errorCode; SaNameT objectName; @@ -2591,11 +2591,11 @@ bailout: } bool objectToPBE(std::string objectNameString, const SaImmAttrValuesT_2 **attrs, - ClassMap *classIdMap, void *db_handle, unsigned int object_id, + ClassMap *classIdMap, void *db_handle, int object_id, SaImmClassNameT className, SaUint64T ccb_id) { std::string valueString; std::string classNameString; - unsigned int class_id = 0; + int class_id = 0; ClassInfo *classInfo = NULL; int rc = 0; sqlite3 *dbHandle = (sqlite3 *)db_handle; @@ -2752,7 +2752,7 @@ bool dumpClassesToPbe(SaImmHandleT immHandle, ClassMap *classIdMap, std::list<std::string> classNameList; std::list<std::string>::iterator it; int rc = 0; - unsigned int class_id = 0; + int class_id = 0; char *execErr = NULL; sqlite3 *dbHandle = (sqlite3 *)db_handle; TRACE_ENTER(); @@ -2847,13 +2847,13 @@ int verifyPbeState(SaImmHandleT immHandle, ClassMap *classIdMap, } if (nrows != 1) { - LOG_ER("Expected 1 row got %u rows (line: %u)", nrows, __LINE__); + LOG_ER("Expected 1 row got %d rows (line: %u)", nrows, __LINE__); badfile = true; goto bailout; } - obj_count = strtoul(result[ncols], NULL, 0); - TRACE("verifPbeState: obj_count:%u", obj_count); + obj_count = strtol(result[ncols], NULL, 0); + TRACE("verifPbeState: obj_count:%d", obj_count); rc = sqlite3_exec(dbHandle, "ROLLBACK", NULL, NULL, &execErr); if (rc != SQLITE_OK) { @@ -2890,7 +2890,7 @@ int dumpObjectsToPbe(SaImmHandleT immHandle, ClassMap *classIdMap, char *execErr = NULL; sqlite3 *dbHandle = (sqlite3 *)db_handle; TRACE_ENTER(); - unsigned int object_id = 0; + int object_id = 0; osaf_extended_name_clear(&root); /* Initialize immOmSearch */ @@ -2989,7 +2989,7 @@ int dumpObjectsToPbe(SaImmHandleT immHandle, ClassMap *classIdMap, char *execErr = NULL; sqlite3 *dbHandle = (sqlite3 *)db_handle; TRACE_ENTER(); - unsigned int object_id = 0; + int object_id = 0; osaf_extended_name_clear(&root); std::list<std::string>::iterator it = selectedClassList.begin(); @@ -4072,7 +4072,7 @@ int finalizeSqlStatement(void* stmt) { } ClassInfo* classToPBE(std::string classNameString, SaImmHandleT immHandle, - void* db_handle, unsigned int class_id) { + void* db_handle, int class_id) { abort(); return NULL; } @@ -4128,7 +4128,7 @@ void objectModifyDiscardMatchingValuesOfAttrToPBE( } bool objectToPBE(std::string objectNameString, const SaImmAttrValuesT_2** attrs, - ClassMap* classIdMap, void* db_handle, unsigned int object_id, + ClassMap* classIdMap, void* db_handle, int object_id, SaImmClassNameT className, SaUint64T ccb_id) { abort(); } diff --git a/src/imm/common/immpbe_dump.h b/src/imm/common/immpbe_dump.h index f44082f..17a0108 100644 --- a/src/imm/common/immpbe_dump.h +++ b/src/imm/common/immpbe_dump.h @@ -37,7 +37,7 @@ typedef std::map<std::string, SaImmAttrFlagsT> AttrMap; int finalizeSqlStatement(void* stmt); struct ClassInfo { - ClassInfo(unsigned int class_id) : mClassId(class_id), sqlStmt(NULL) {} + ClassInfo(int class_id) : mClassId(class_id), sqlStmt(NULL) {} ~ClassInfo() { finalizeSqlStatement(sqlStmt); sqlStmt = NULL; @@ -45,7 +45,7 @@ struct ClassInfo { mAttrMap.clear(); } - unsigned int mClassId; + int mClassId; AttrMap mAttrMap; void* sqlStmt; }; @@ -71,11 +71,11 @@ bool dumpClassesToPbe(SaImmHandleT immHandle, ClassMap* classIdMap, unsigned int purgeInstancesOfClassToPBE(SaImmHandleT immHandle, std::string className, void* db_handle); int dumpInstancesOfClassToPBE(SaImmHandleT immHandle, ClassMap* classIdMap, - std::string className, unsigned int* objidCount, + std::string className, int* objidCount, void* db_handle); ClassInfo* classToPBE(std::string classNameString, SaImmHandleT immHandle, - void* db_handle, unsigned int class_id); + void* db_handle, int class_id); void deleteClassToPBE(std::string classNameString, void* db_handle, ClassInfo* theClass); @@ -89,7 +89,7 @@ int dumpObjectsToPbe(SaImmHandleT immHandle, ClassMap* classIdMap, void* db_handle, std::list<std::string>& selectedClassList); bool objectToPBE(std::string objectNameString, const SaImmAttrValuesT_2** attrs, - ClassMap* classIdMap, void* db_handle, unsigned int object_id, + ClassMap* classIdMap, void* db_handle, int object_id, SaImmClassNameT className, SaUint64T ccbId); void objectDeleteToPBE(std::string objectNameString, void* db_handle); diff --git a/src/imm/immpbed/immpbe.h b/src/imm/immpbed/immpbe.h index 420344b..e9ae271 100644 --- a/src/imm/immpbed/immpbe.h +++ b/src/imm/immpbed/immpbe.h @@ -22,6 +22,6 @@ void pbeDaemon(SaImmHandleT immHandle, void* dbHandle, SaImmAdminOwnerHandleT ownerHandle, ClassMap* classIdMap, - unsigned int objCount, bool pbe2, bool pbe2B); + int objCount, bool pbe2, bool pbe2B); #endif // IMM_IMMPBED_IMMPBE_H_ diff --git a/src/imm/immpbed/immpbe_daemon.cc b/src/imm/immpbed/immpbe_daemon.cc index aca202f..1f57d9c 100644 --- a/src/imm/immpbed/immpbe_daemon.cc +++ b/src/imm/immpbed/immpbe_daemon.cc @@ -59,8 +59,8 @@ static nfds_t nrtfds = 1; static void *sDbHandle = NULL; static ClassMap *sClassIdMap = NULL; -static unsigned int sObjCount = 0; -static unsigned int sClassCount = 0; +static int sObjCount = 0; +static int sClassCount = 0; static unsigned int sEpoch = 0; static unsigned int sNoStdFlags = 0x00000000; static unsigned int sBufsize = 256; @@ -605,20 +605,19 @@ static void saImmOiAdminOperationCallback( classToPBE(className, pbeOmHandle, sDbHandle, ++sClassCount); if (schemaChange) { - unsigned int obj_count = 0; LOG_IN("PBE created new class definition for %s", className.c_str()); if (persistentExtent) { - TRACE_5("sObjCount:%u", sObjCount); - obj_count = dumpInstancesOfClassToPBE(pbeOmHandle, sClassIdMap, + TRACE_5("sObjCount:%d", sObjCount); + int obj_count = dumpInstancesOfClassToPBE(pbeOmHandle, sClassIdMap, className, &sObjCount, sDbHandle); if (obj_count < 0) { LOG_ER( "dumpInstncesOfClassesToPBE failed in callback in PBE. sDbHandle is closed - exiting"); exit(1); } - LOG_NO("PBE dumped %u objects of new class definition for %s", + LOG_NO("PBE dumped %d objects of new class definition for %s", obj_count, className.c_str()); - TRACE_5("sObjCount:%u", sObjCount); + TRACE_5("sObjCount:%d", sObjCount); } } else { /* Add classname to opensaf object when this is not an upgrade. */ @@ -2386,7 +2385,7 @@ void pbeRtObjThreadStart() { void pbeDaemon(SaImmHandleT immHandle, void *dbHandle, SaImmAdminOwnerHandleT ownerHandle, ClassMap *classIdMap, - unsigned int objCount, bool pbe2, bool pbe2B) { + int objCount, bool pbe2, bool pbe2B) { SaAisErrorT error = SA_AIS_OK; ClassMap::iterator ci; @@ -2404,7 +2403,7 @@ void pbeDaemon(SaImmHandleT immHandle, void *dbHandle, immutilWrapperProfile.nTries = 5; TRACE_ENTER(); - LOG_NO("pbeDaemon starting with obj-count:%u", sObjCount); + LOG_NO("pbeDaemon starting with obj-count:%d", sObjCount); /* Restore also sClassCount. */ for (ci = sClassIdMap->begin(); ci != sClassIdMap->end(); ++ci) { @@ -2498,7 +2497,6 @@ void pbeDaemon(SaImmHandleT immHandle, void *dbHandle, sDbHandle = NULL; } pbeOiHandle = 0; - immHandle = 0; break; } } -- 2.7.4 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel