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