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

Reply via email to