Removed itzam, and switched to commom library; Known issues: delete key test fails...
authorIngo Huerner <ingo.huerner@xse.de>
Fri, 4 Apr 2014 14:58:18 +0000 (16:58 +0200)
committerIngo Huerner <ingo.huerner@xse.de>
Fri, 4 Apr 2014 14:58:18 +0000 (16:58 +0200)
29 files changed:
configure.ac
include_protected/persistence_client_library_rc_table.h [deleted file]
persistence_client_library.pc.in
src/Makefile.am
src/crc32.c
src/crc32.h [moved from include_protected/crc32.h with 92% similarity]
src/persistence_client_library.c
src/persistence_client_library_backup_filelist.c
src/persistence_client_library_backup_filelist.h
src/persistence_client_library_custom_loader.c
src/persistence_client_library_data_organization.c
src/persistence_client_library_data_organization.h [moved from include_protected/persistence_client_library_data_organization.h with 87% similarity]
src/persistence_client_library_db_access.c
src/persistence_client_library_db_access.h [moved from include_protected/persistence_client_library_db_access.h with 59% similarity]
src/persistence_client_library_dbus_cmd.c
src/persistence_client_library_dbus_service.c
src/persistence_client_library_file.c
src/persistence_client_library_handle.c
src/persistence_client_library_handle.h
src/persistence_client_library_itzam_errors.c [deleted file]
src/persistence_client_library_itzam_errors.h [deleted file]
src/persistence_client_library_key.c
src/persistence_client_library_lc_interface.c
src/persistence_client_library_pas_interface.c
src/persistence_client_library_prct_access.c
src/persistence_client_library_prct_access.h
test/Makefile.am
test/data/Data.tar.gz
test/persistence_client_library_test.c

index 8cdfb7b..3e68985 100644 (file)
@@ -69,7 +69,7 @@ AC_CHECK_FUNCS([fdatasync ftruncate mkdir munmap rmdir strerror utime dlopen])
 PKG_CHECK_MODULES(DEPS,
                   automotive-dlt
                   dbus-1
-                  libitzam)
+                  libperscommon)
 
 AC_SUBST(DEPS_CFLAGS)
 AC_SUBST(DEPS_LIBS)
@@ -115,6 +115,28 @@ else
 fi
 ######################################################################
 
+# enable persistence file cahce component ###########
+AC_ARG_ENABLE([filecache],
+            [AS_HELP_STRING([--enable-filecache],[Enable file cache component])],
+            [use_filecache=$enableval],
+            [use_filecache="no"])
+
+AM_CONDITIONAL([USE_FILECACHE], [test x"$use_filecache" = "no"])
+
+if test "$use_filecache" != "yes" -a "$use_filecache" != "no"; then   
+   AC_MSG_ERROR([Invalid file cache check mode specified: $use_filecache. Only "yes" or "no" is valid])
+else   
+   AC_MSG_NOTICE([Use file cache: $use_filecache])
+
+   if test "$use_filecache" = "yes"; then
+      PKG_CHECK_MODULES(PFC, persistence_file_cache)
+      AC_DEFINE_UNQUOTED([USE_FILECACHE], [1], [filecache enabled])   
+   fi
+fi
+   AC_SUBST(PFC_CFLAGS)
+   AC_SUBST(PFC_LIBS)
+######################################################################
+
 
 AC_ARG_ENABLE(debug,
 AS_HELP_STRING([--enable-debug],
diff --git a/include_protected/persistence_client_library_rc_table.h b/include_protected/persistence_client_library_rc_table.h
deleted file mode 100644 (file)
index 6cb0668..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-#ifndef PERSISTENCE_CLIENT_LIBRARY_RC_TABLE_H
-#define PERSISTENCE_CLIENT_LIBRARY_RC_TABLE_H
-
-/******************************************************************************
- * Project         Persistency
- * (c) copyright   2012
- * Company         XS Embedded GmbH
- *****************************************************************************/
-/******************************************************************************
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed
- * with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-******************************************************************************/
- /**
- * @file           persistence_client_library_rc_table.h
- * @ingroup        Persistence client library
- * @author         Ingo Huerner
- * @brief          Header of the persistence client library resource config table.
- * @see            
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <fcntl.h>      // needed for file open flags
-
-#define  PERSIST_DATA_RC_TABLE_INTERFACE_VERSION   (0x03000000U)
-
-#include "persistence_client_library_data_organization.h"
-
-
-/// enumerator used to identify the policy to manage the data
-typedef enum _PersistencePolicy_e
-{
-   PersistencePolicy_wc    = 0,  /**< the data is managed write cached */
-   PersistencePolicy_wt    = 1,  /**< the data is managed write through */
-   PersistencePolicy_na    = 2,  /**< the data is not applicable */
-
-   /** insert new entries here ... */
-   PersistencePolicy_LastEntry         /**< last entry */
-
-} PersistencePolicy_e;
-
-
-/// enumerator used to identify the persistence storage to manage the data
-typedef enum _PersistenceStorage_e
-{
-   PersistenceStorage_local    = 0,  /**< the data is managed local */
-   PersistenceStorage_shared   = 1,  /**< the data is managed shared */
-   PersistenceStorage_custom   = 2,  /**< the data is managed over custom client implementation */
-
-   /** insert new entries here ... */
-   PersistenceStorage_LastEntry         /**< last entry */
-
-} PersistenceStorage_e;
-
-
-
-/** specify the type of the resource */
-typedef enum PersistenceResourceType_e_
-{
-   PersistenceResourceType_key    = 0,  /**< key type resource */
-   PersistenceResourceType_file,        /**< file type resource */
-
-   /** insert new entries here ... */
-   PersistenceResourceType_LastEntry      /**< last entry */
-
-} PersistenceResourceType_e;
-
-
-
-/// structure used to manage database context
-typedef struct _PersistenceDbContext_s
-{
-   unsigned int ldbid;
-   unsigned int user_no;
-   unsigned int seat_no;
-} PersistenceDbContext_s;
-
-
-typedef enum PersistencePermission_e_
-{
-    PersistencePermission_ReadWrite = 0,
-    PersistencePermission_ReadOnly  = 1,
-    PersistencePermission_WriteOnly = 2,
-
-   /** insert new entries here ... */
-    PersistencePermission_LastEntry            /**< last entry */
-} PersistencePermission_e;
-
-
-
-/// structure used to manage the persistence configuration for a key
-typedef struct _PersistenceConfigurationKey_s
-{
-   PersistencePolicy_e        policy;                          /**< policy  */
-   PersistenceStorage_e       storage;                         /**< definition of storage to use */
-   PersistenceResourceType_e  type;                            /**< type of the resource - since 4.0.0.0*/
-   PersistencePermission_e    permission;                      /**< file access flags*/
-   unsigned int         max_size;                              /**< max size expected for the key */
-   char                 reponsible[MaxConfKeyLengthResp];      /**< name of responsible application */
-   char                 custom_name[MaxConfKeyLengthCusName];  /**< name of the customer plugin */
-   char                 customID[MaxRctLengthCustom_ID];       /**< internal ID for the custom type resource */
-} PersistenceConfigurationKey_s;
-
-
-/// structure definition of an persistence resource configuration table entry
-typedef struct _PersistenceRctEntry_s
-{
-    char key[PrctKeySize];                                   /**< the key */
-    PersistenceConfigurationKey_s data;                      /**< data for the key */
-}
-PersistenceRctEntry_s;
-
-
-/// persistence information
-typedef struct _PersistenceInfo_s
-{
-   PersistenceDbContext_s           context;          /**< database context*/
-   PersistenceConfigurationKey_s    configKey;        /**< prct configuration key*/
-
-} PersistenceInfo_s;
-
-
-
-/// persistence resource config table type definition
-typedef enum _PersistenceRCT_e
-{
-   PersistenceRCT_local         = 0,
-   PersistenceRCT_shared_public = 1,
-   PersistenceRCT_shared_group  = 2,
-
-   PersistenceRCT_LastEntry                // last Entry
-
-} PersistenceRCT_e;
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* PERSISTENCY_CLIENT_LIBRARY_RC_TABLE_H */
index 2b40b17..b5e4e14 100644 (file)
@@ -8,8 +8,8 @@ datadir=@datadir@
 Name: persistence client library
 Description: persistence client library 
 Version: @VERSION@
-Requires: automotive-dlt
-Requires.private: libitzam dbus-1
+Requires: automotive-dlt libperscommon
+Requires.private: dbus-1
 Libs: -L${libdir} -lpersistence_client_library -lrt -ldl
-Libs.private: -lpersistence_client_library_common_data -ldbus
+Libs.private: -ldbus
 Cflags: -I${includedir}
index 8f51515..7a2248a 100644 (file)
@@ -15,18 +15,10 @@ include_HEADERS = ../include/persistence_client_library_key.h \
                   ../include/persistence_client_library.h \
                   ../include/persistence_client_library_error_def.h \
                   ../include/persistence_client_custom.h
-                  
 
-lib_LTLIBRARIES = libpersistence_client_library_common_data.la libpersistence_client_library.la 
+lib_LTLIBRARIES = libpersistence_client_library.la 
 
-
-
-libpersistence_client_library_common_data_la_SOURCES = \
-                                     persistence_client_library_data_organization.c
-
-
-
-libpersistence_client_library_la_LIBADD = $(DEPS_LIBS) -ldl -lpersistence_client_library_common_data
+libpersistence_client_library_la_LIBADD = $(DEPS_LIBS) $(PFC_LIBS) -ldl -lpers_common
 
 libpersistence_client_library_la_SOURCES = \
                                      persistence_client_library.c \
@@ -39,7 +31,7 @@ libpersistence_client_library_la_SOURCES = \
                                      persistence_client_library_dbus_service.c \
                                      persistence_client_library_custom_loader.c \
                                      persistence_client_library_prct_access.c \
-                                     persistence_client_library_itzam_errors.c \
+                                     persistence_client_library_data_organization.c \
                                      persistence_client_library_backup_filelist.c \
                                      persistence_client_library_dbus_cmd.c \
                                      crc32.c \
index ad325ad..709a974 100644 (file)
@@ -51,7 +51,7 @@
  */
 
 
-#include "../include_protected/crc32.h"
+#include "crc32.h"
 
 
 enum crc32ConstantDefinition
@@ -107,7 +107,7 @@ static unsigned int crc32_tab[] =
    0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
 };
 
-const unsigned int pclCrc32(unsigned int crc, const unsigned char *buf, size_t theSize)
+unsigned int pclCrc32(unsigned int crc, const unsigned char *buf, size_t theSize)
 {
    const unsigned char *p = 0;
    unsigned int rval = 0;
@@ -119,10 +119,10 @@ const unsigned int pclCrc32(unsigned int crc, const unsigned char *buf, size_t t
    {
       while(theSize--)
       {
-            unsigned int index = (crc ^ *p++) & 0xFF;
+            unsigned int idx = (crc ^ *p++) & 0xFF;
 
-            if(index < crc32_array_size)
-                    crc = crc32_tab[index] ^ (crc >> 8);
+            if(idx < crc32_array_size)
+                    crc = crc32_tab[idx] ^ (crc >> 8);
       }
       rval = crc ^ ~0U;
    }
similarity index 92%
rename from include_protected/crc32.h
rename to src/crc32.h
index 8a4e0b9..1d43392 100644 (file)
@@ -30,7 +30,7 @@ extern "C" {
 
 #include <string.h>
 
-const unsigned int pclCrc32(unsigned int crc, const unsigned char *buf, size_t theSize);
+unsigned int pclCrc32(unsigned int crc, const unsigned char *buf, size_t theSize);
 
 
 #ifdef __cplusplus
index 4eba3bf..9c22464 100644 (file)
 #include "persistence_client_library_custom_loader.h"
 #include "persistence_client_library.h"
 #include "persistence_client_library_backup_filelist.h"
-#include "../include_protected/persistence_client_library_db_access.h"
+#include "persistence_client_library_db_access.h"
+
+#if USE_FILECACHE
+   #include <persistence_file_cache.h>
+#endif
 
 #include <string.h>
 #include <errno.h>
 #include <stdlib.h>
 #include <dlfcn.h>
-
-#include <dlt/dlt.h>
-#include <dlt/dlt_common.h>
-
 #include <dbus/dbus.h>
 
 /// debug log and trace (DLT) setup
-DLT_DECLARE_CONTEXT(gDLTContext);
+DLT_DECLARE_CONTEXT(gPclDLTContext);
 
 static int gShutdownMode = 0;
 
@@ -52,8 +52,8 @@ int pclInitLibrary(const char* appName, int shutdownMode)
    {
       gShutdownMode = shutdownMode;
 
-      DLT_REGISTER_CONTEXT(gDLTContext,"PCL","Context for persistence client library logging");
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclInitLibrary => I N I T  Persistence Client Library - "), DLT_STRING(gAppId),
+      DLT_REGISTER_CONTEXT(gPclDLTContext,"PCL","Context for persistence client library logging");
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclInitLibrary => I N I T  Persistence Client Library - "), DLT_STRING(gAppId),
                            DLT_STRING("- init counter: "), DLT_INT(gPclInitialized) );
 
       /// environment variable for on demand loading of custom libraries
@@ -63,12 +63,20 @@ int pclInitLibrary(const char* appName, int shutdownMode)
       /// blacklist path environment variable
       const char *pBlacklistPath = getenv("PERS_BLACKLIST_PATH");
 
+#if USE_FILECACHE
+   printf("* * * * * * Using the filecache!  * * * * * * * * *\n");
+
+   pfcInitCache(appName);
+#else
+   printf("* * * * * * N O T  using the filecache! * * * * * *\n");
+#endif
+
 #if USE_PASINTERFACE == 1
       //printf("* ADMIN INTERFACE is  - e n a b l e d - \n");
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("PAS interface is enabled!!"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("PAS interface is enabled!!"));
 #else
       //printf("* ADMIN INTERFACE is  - d i s a b l e d - enable with \"./configure --enable-pasinterface\"\n");
-      DLT_LOG(gDLTContext, DLT_LOG_WARN, DLT_STRING("PAS interface is not enabled, enable with \"./configure --enable-pasinterface\""));
+      DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("PAS interface is not enabled, enable with \"./configure --enable-pasinterface\""));
 #endif
 
 
@@ -86,12 +94,12 @@ int pclInitLibrary(const char* appName, int shutdownMode)
 
       if(readBlacklistConfigFile(pBlacklistPath) == -1)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_WARN, DLT_STRING("pclInitLibrary -> failed to access blacklist:"), DLT_STRING(pBlacklistPath));
+         DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("pclInitLibrary -> failed to access blacklist:"), DLT_STRING(pBlacklistPath));
       }
 
       if(setup_dbus_mainloop() == -1)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => Failed to setup main loop"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => Failed to setup main loop"));
          pthread_mutex_unlock(&gDbusPendingRegMtx);
          return EPERS_DBUS_MAINLOOP;
       }
@@ -102,7 +110,7 @@ int pclInitLibrary(const char* appName, int shutdownMode)
          // register for lifecycle and persistence admin service dbus messages
          if(register_lifecycle(shutdownMode) == -1)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => Failed to register to lifecycle dbus interface"));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => Failed to register to lifecycle dbus interface"));
             pthread_mutex_unlock(&gDbusPendingRegMtx);
             return EPERS_REGISTER_LIFECYCLE;
          }
@@ -110,7 +118,7 @@ int pclInitLibrary(const char* appName, int shutdownMode)
 #if USE_PASINTERFACE == 1
       if(register_pers_admin_service() == -1)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => Failed to register to pers admin dbus interface"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => Failed to register to pers admin dbus interface"));
          pthread_mutex_unlock(&gDbusPendingRegMtx);
          return EPERS_REGISTER_ADMIN;
       }
@@ -136,19 +144,19 @@ int pclInitLibrary(const char* appName, int shutdownMode)
                   {
                      if( (gPersCustomFuncs[i].custom_plugin_init) != NULL)
                      {
-                        DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclInitLibrary => Loaded plugin: "),
+                        DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclInitLibrary => Loaded plugin: "),
                                                            DLT_STRING(get_custom_client_lib_name(i)));
                         gPersCustomFuncs[i].custom_plugin_init();
                      }
                      else
                      {
-                        DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => E r r o r could not load plugin functions: "),
+                        DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => E r r o r could not load plugin functions: "),
                                                             DLT_STRING(get_custom_client_lib_name(i)));
                      }
                   }
                   else
                   {
-                     DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => E r r o r could not load plugin: "),
+                     DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclInitLibrary => E r r o r could not load plugin: "),
                                           DLT_STRING(get_custom_client_lib_name(i)));
                   }
                }
@@ -161,7 +169,7 @@ int pclInitLibrary(const char* appName, int shutdownMode)
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_WARN, DLT_STRING("pclInit => Failed to load custom library config table => error number:"), DLT_INT(status));
+         DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("pclInit => Failed to load custom library config table => error number:"), DLT_INT(status));
       }
 
       // assign application name
@@ -173,7 +181,7 @@ int pclInitLibrary(const char* appName, int shutdownMode)
    else if(gPclInitialized >= PCLinitialized)
    {
       gPclInitialized++; // increment init counter
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclInitLibrary => I N I T  Persistence Client Library - "), DLT_STRING(gAppId),
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclInitLibrary => I N I T  Persistence Client Library - "), DLT_STRING(gAppId),
                            DLT_STRING("- ONLY INCREMENT init counter: "), DLT_INT(gPclInitialized) );
    }
    return rval;
@@ -188,7 +196,7 @@ int pclDeinitLibrary(void)
    if(gPclInitialized == PCLinitialized)
    {
       int* retval;
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclDeinitLibrary -> D E I N I T  client library - "), DLT_STRING(gAppId),
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclDeinitLibrary -> D E I N I T  client library - "), DLT_STRING(gAppId),
                                          DLT_STRING("- init counter: "), DLT_INT(gPclInitialized));
 
       // unregister for lifecycle and persistence admin service dbus messages
@@ -217,7 +225,7 @@ int pclDeinitLibrary(void)
       pers_rct_close_all();
 
       // close opend database
-      pers_db_close_all();
+      database_close_all();
 
       // close persistence handles
       close_all_persistence_handle();
@@ -236,11 +244,11 @@ int pclDeinitLibrary(void)
 
       gPclInitialized = PCLnotInitialized;
 
-      DLT_UNREGISTER_CONTEXT(gDLTContext);
+      DLT_UNREGISTER_CONTEXT(gPclDLTContext);
    }
    else if(gPclInitialized > PCLinitialized)
    {
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclDeinitLibrary -> D E I N I T  client library - "), DLT_STRING(gAppId),
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclDeinitLibrary -> D E I N I T  client library - "), DLT_STRING(gAppId),
                                            DLT_STRING("- ONLY DECREMENT init counter: "), DLT_INT(gPclInitialized));
       gPclInitialized--;   // decrement init counter
    }
index f87942d..060901c 100644 (file)
 #include "persistence_client_library_backup_filelist.h"
 #include "persistence_client_library_handle.h"
 #include "rbtree.h"
-#include "../include_protected/crc32.h"
-#include "../include_protected/persistence_client_library_data_organization.h"
+
+#include "crc32.h"
+#include "persistence_client_library_data_organization.h"
 
 
-#include <fcntl.h>
-#include <string.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <errno.h>
-#include <unistd.h>
 #include <stdlib.h>
-#include <stdio.h>
 #include <sys/sendfile.h>
 
 
@@ -176,14 +173,14 @@ int readBlacklistConfigFile(const char* filename)
           fd = open(filename, O_RDONLY);
           if (fd == -1)
           {
-                 DLT_LOG(gDLTContext, DLT_LOG_WARN, DLT_STRING("configReader::readConfigFile ==> Error file open"), DLT_STRING(filename), DLT_STRING(strerror(errno)) );
+                 DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("configReader::readConfigFile ==> Error file open"), DLT_STRING(filename), DLT_STRING(strerror(errno)) );
                  return -1;
           }
 
           // check for empty file
           if(gConfigFileSize == 0)
           {
-                 DLT_LOG(gDLTContext, DLT_LOG_WARN, DLT_STRING("configReader::readConfigFile ==> Error file size is 0:"), DLT_STRING(filename));
+                 DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("configReader::readConfigFile ==> Error file size is 0:"), DLT_STRING(filename));
                  close(fd);
                  return -1;
           }
@@ -195,7 +192,7 @@ int readBlacklistConfigFile(const char* filename)
           {
                  gpConfigFileMap = 0;
                  close(fd);
-                 DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("configReader::readConfigFile ==> Error mapping the file:"), DLT_STRING(filename), DLT_STRING(strerror(errno)) );
+                 DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("configReader::readConfigFile ==> Error mapping the file:"), DLT_STRING(filename), DLT_STRING(strerror(errno)) );
 
                  return -1;
           }
@@ -245,7 +242,7 @@ int need_backup_key(unsigned int key)
             free(item);
 
       rval = -1;
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("need_backup_key ==> item or gRb_tree_bl is NULL"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("need_backup_key ==> item or gRb_tree_bl is NULL"));
    }
 
    return rval;
@@ -376,7 +373,7 @@ int pclCreateFile(const char* path)
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclCreateFile ==> no valid path to create: "), DLT_STRING(path) );
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclCreateFile ==> no valid path to create: "), DLT_STRING(path) );
    }
 
    return handle;
@@ -402,7 +399,7 @@ int pclVerifyConsistency(const char* origPath, const char* backupPath, const cha
    // *************************************************
    if( (backupAvail == 0) && (csumAvail == 0) )
    {
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclVerifyConsistency => there is a backup file AND a checksum"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclVerifyConsistency => there is a backup file AND a checksum"));
       // calculate checksum form backup file
       fdBackup = open(backupPath,  O_RDONLY);
       if(fdBackup != -1)
@@ -461,7 +458,7 @@ int pclVerifyConsistency(const char* origPath, const char* backupPath, const cha
    // *************************************************
    else if(csumAvail == 0)
    {
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclVerifyConsistency => there is ONLY a checksum file"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclVerifyConsistency => there is ONLY a checksum file"));
 
       fdCsum = open(csumPath,  O_RDONLY);
       if(fdCsum != -1)
@@ -469,7 +466,7 @@ int pclVerifyConsistency(const char* origPath, const char* backupPath, const cha
          readSize = read(fdCsum, csumBuf, ChecksumBufSize);
          if(readSize <= 0)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclVerifyConsistency => read checksum: invalid readSize"));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclVerifyConsistency => read checksum: invalid readSize"));
          }
          close(fdCsum);
 
@@ -503,7 +500,7 @@ int pclVerifyConsistency(const char* origPath, const char* backupPath, const cha
    // *************************************************
    else if(backupAvail == 0)
    {
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclVerifyConsistency => there is ONLY a backup file"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclVerifyConsistency => there is ONLY a backup file"));
 
       // calculate checksum form backup file
       fdBackup = open(backupPath,  O_RDONLY);
@@ -564,7 +561,7 @@ int pclRecoverFromBackup(int backupFd, const char* original)
       // copy data from one file to another
       if((handle = pclBackupDoFileCopy(backupFd, handle)) == -1)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclRecoverFromBackup => couldn't write whole buffer"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclRecoverFromBackup => couldn't write whole buffer"));
       }
    }
 
@@ -595,13 +592,13 @@ int pclCreateBackup(const char* dstPath, int srcfd, const char* csumPath, const
       int csumSize = strlen(csumBuf);
       if(write(csfd, csumBuf, csumSize) != csumSize)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclCreateBackup => failed to write checksum to file"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclCreateBackup => failed to write checksum to file"));
       }
       close(csfd);
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclCreateBackup => failed to create checksum file:"), DLT_STRING(strerror(errno)) );
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclCreateBackup => failed to create checksum file:"), DLT_STRING(strerror(errno)) );
    }
 
    // create backup file, user and group has read/write permission, others have read permission
@@ -615,12 +612,12 @@ int pclCreateBackup(const char* dstPath, int srcfd, const char* csumPath, const
       // copy data from one file to another
       if((readSize = pclBackupDoFileCopy(srcfd, dstFd)) == -1)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pcl_create_backup => error copying file"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pcl_create_backup => error copying file"));
       }
 
       if(close(dstFd) == -1)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pcl_create_backup => error closing fd"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pcl_create_backup => error closing fd"));
       }
 
       // set back to the position
@@ -628,7 +625,7 @@ int pclCreateBackup(const char* dstPath, int srcfd, const char* csumPath, const
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclCreateBackup => failed to open backup file"),
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclCreateBackup => failed to open backup file"),
                                           DLT_STRING(dstPath), DLT_STRING(strerror(errno)));
    }
 
index 0771ae4..1350bbf 100644 (file)
@@ -20,7 +20,8 @@
  */
 
 
-#include "../include_protected/persistence_client_library_rc_table.h"
+//#include "../include_protected/persistence_client_library_rc_table.h"
+#include <persComRct.h>
 
 /**
  * @brief Read the blacklist configuration file
index 4f6e5fe..d0dc4ae 100644 (file)
@@ -17,7 +17,7 @@
  */
 
 #include "persistence_client_library_custom_loader.h"
-#include "../include_protected/persistence_client_library_data_organization.h"
+#include "persistence_client_library_data_organization.h"
 
 #include <stdio.h>
 #include <errno.h>
@@ -78,7 +78,7 @@ PersistenceCustomLibs_e custom_client_name_to_id(const char* lib_name, int subst
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("custom_libname_to_id - error - id not found for lib:"), DLT_STRING(lib_name));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("custom_libname_to_id - error - id not found for lib:"), DLT_STRING(lib_name));
       }
    }
    else
@@ -113,7 +113,7 @@ PersistenceCustomLibs_e custom_client_name_to_id(const char* lib_name, int subst
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("custom_libname_to_id - error - id not found for lib:"), DLT_STRING(lib_name));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("custom_libname_to_id - error - id not found for lib:"), DLT_STRING(lib_name));
       }
 
    }
@@ -225,25 +225,25 @@ int get_custom_libraries()
             else
             {
                rval = EPERS_CONFIGMAPFAILED;
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load config file error - mapping of file failed"));
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("load config file error - mapping of file failed"));
             }
             close(fd);
          }
          else
          {
             rval = EPERS_CONFIGNOTAVAILABLE;
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load config file error - no file with plugins available:"), DLT_STRING(filename), DLT_STRING(strerror(errno)));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("load config file error - no file with plugins available:"), DLT_STRING(filename), DLT_STRING(strerror(errno)));
          }
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load config file error - invalid file size"), DLT_STRING(filename), DLT_STRING(strerror(errno)));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("load config file error - invalid file size"), DLT_STRING(filename), DLT_STRING(strerror(errno)));
       }
    }
    else
    {
       rval = EPERS_CONFIGNOSTAT;
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("lload config file error - can't stat config file:"), DLT_STRING(filename), DLT_STRING(strerror(errno)));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("lload config file error - can't stat config file:"), DLT_STRING(filename), DLT_STRING(strerror(errno)));
    }
    return rval;
 }
@@ -268,125 +268,125 @@ int load_custom_library(PersistenceCustomLibs_e customLib, Pers_custom_functs_s
          *(void **) (&customFuncts->custom_plugin_handle_close) = dlsym(handle, "plugin_handle_close");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
          // custom_plugin_delete_data
          *(void **) (&customFuncts->custom_plugin_delete_data) = dlsym(handle, "plugin_delete_data");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
           }
          // custom_plugin_get_data
          *(void **) (&customFuncts->custom_plugin_handle_get_data) = dlsym(handle, "plugin_handle_get_data");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
           }
          // custom_plugin_get_data
          *(void **) (&customFuncts->custom_plugin_get_data) = dlsym(handle, "plugin_get_data");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
           }
          // custom_plugin_init
          *(void **) (&customFuncts->custom_plugin_init) = dlsym(handle, "plugin_init");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
           }
          // custom_plugin_deinit
          *(void **) (&customFuncts->custom_plugin_deinit) = dlsym(handle, "plugin_deinit");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
           }
          // custom_plugin_open
          *(void **) (&customFuncts->custom_plugin_handle_open) = dlsym(handle, "plugin_handle_open");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
           }
          // custom_plugin_set_data
          *(void **) (&customFuncts->custom_plugin_handle_set_data) = dlsym(handle, "plugin_handle_set_data");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
           }
          // custom_plugin_set_data
          *(void **) (&customFuncts->custom_plugin_set_data) = dlsym(handle, "plugin_set_data");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
          // custom_plugin_get_size_handle
          *(void **) (&customFuncts->custom_plugin_handle_get_size) = dlsym(handle, "plugin_handle_get_size");
          if ((error = dlerror()) != NULL)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+            DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
          // custom_plugin_get_size
          *(void **) (&customFuncts->custom_plugin_get_size) = dlsym(handle, "plugin_get_size");
          if ((error = dlerror()) != NULL)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+            DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
           // create backup
          *(void **) (&customFuncts->custom_plugin_create_backup) = dlsym(handle, "plugin_create_backup");
          if ((error = dlerror()) != NULL)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+            DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
          // restore backup
          *(void **) (&customFuncts->custom_plugin_restore_backup) = dlsym(handle, "plugin_restore_backup");
          if ((error = dlerror()) != NULL)
          {
-             DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+             DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
          // restore backup
          *(void **) (&customFuncts->custom_plugin_get_backup) = dlsym(handle, "plugin_get_backup");
          if ((error = dlerror()) != NULL)
          {
-             DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+             DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
 
          // custom_plugin_get_status_notification_clbk
          *(void **) (&customFuncts->custom_plugin_get_status_notification_clbk) = dlsym(handle, "plugin_get_status_notification_clbk");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
           }
 
          // initialize plugin (non blocking)
          *(void **) (&customFuncts->custom_plugin_init_async) = dlsym(handle, "plugin_init_async");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
 
          // clear all data
          *(void **) (&customFuncts->custom_plugin_clear_all_data) = dlsym(handle, "plugin_clear_all_data");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
 
          // sync data
          *(void **) (&customFuncts->custom_plugin_sync) = dlsym(handle, "plugin_sync");
          if ((error = dlerror()) != NULL)
          {
-              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+              DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          }
       }
       else
       {
          error = dlerror();
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error:"), DLT_STRING(error));
          rval = EPERS_DLOPENERROR;
       }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error: - customLib out of bounds"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("load_custom_library - error: - customLib out of bounds"));
       rval = EPERS_DLOPENERROR;
    }
 
index 12d5eea..4ea78db 100644 (file)
@@ -16,7 +16,7 @@
  * @see            
  */
 
-#include "../include_protected/persistence_client_library_data_organization.h"
+#include "persistence_client_library_data_organization.h"
 
 #include <string.h>
 #include <stdio.h>
@@ -63,26 +63,26 @@ const char* gLocalCachePath        = CACHEPREFIX "%s";
 /// path prefix for local write through database /Data/mnt_wt/<appId>/<database_name>
 const char* gLocalWtPath           = WTPREFIX "%s";
 /// path prefix for shared cached database: /Data/mnt_c/Shared/Group/<group_no>/<database_name>
-const char* gSharedCachePath       = CACHEPREFIX "%s/Shared_Group_%x";
+const char* gSharedCachePath       = CACHEPREFIX "%s/shared_group_%x";
 /// path prefix for shared write through database: /Data/mnt_wt/Shared/Group/<group_no>/<database_name>
-const char* gSharedWtPath          = WTPREFIX "%s/Shared_Group_%x";
+const char* gSharedWtPath          = WTPREFIX "%s/shared_group_%x";
 /// path prefix for shared public cached database: /Data/mnt_c/Shared/Public//<database_name>
-const char* gSharedPublicCachePath = CACHEPREFIX "%s/Shared_Public";
+const char* gSharedPublicCachePath = CACHEPREFIX "%s/shared_public";
 /// path prefix for shared public write through database: /Data/mnt_wt/Shared/Public/<database_name>
-const char* gSharedPublicWtPath    = WTPREFIX "%s/Shared_Public";
+const char* gSharedPublicWtPath    = WTPREFIX "%s/shared_public";
 
 /// path prefix for local cached database: /Data/mnt_c/<appId>/ (<database_name>
 const char* gLocalCachePathKey        = CACHEPREFIX "%s%s";
 /// path prefix for local write through database /Data/mnt_wt/<appId>/<database_name>
 const char* gLocalWtPathKey           = WTPREFIX "%s%s";
 /// path prefix for shared cached database: /Data/mnt_c/Shared/Group/<group_no>/<database_name>
-const char* gSharedCachePathKey       = CACHEPREFIX "%s/Shared_Group_%x%s";
+const char* gSharedCachePathKey       = CACHEPREFIX "%s/shared_group_%x%s";
 /// path prefix for shared write through database: /Data/mnt_wt/Shared/Group/<group_no>/<database_name>
-const char* gSharedWtPathKey          = WTPREFIX "%s/Shared_Group_%x%s";
+const char* gSharedWtPathKey          = WTPREFIX "%s/shared_group_%x%s";
 /// path prefix for shared public cached database: /Data/mnt_c/Shared/Public//<database_name>
-const char* gSharedPublicCachePathKey = CACHEPREFIX "%s/Shared_Public%s";
+const char* gSharedPublicCachePathKey = CACHEPREFIX "%s/shared_public%s";
 /// path prefix for shared public write through database: /Data/mnt_wt/Shared/Public/<database_name>
-const char* gSharedPublicWtPathKey    = WTPREFIX "%s/Shared_Public%s";
+const char* gSharedPublicWtPathKey    = WTPREFIX "%s/shared_public%s";
 
 /// path prefix for local cached files: /Data/mnt_c/<appId>/<user>/<seat>/<resource>
 const char* gLocalCacheFilePath        = CACHEPREFIX "%s/user/%d/seat/%d/%s";
@@ -117,7 +117,7 @@ int gMaxKeyValDataSize = defaultMaxKeyValDataSize;
 unsigned int gPclInitialized = PCLnotInitialized;
 
 
-DltContext gDLTContext;
+DltContext gPclDLTContext;
 
 int(* gChangeNotifyCallback)(pclNotification_s * notifyStruct);
 
@@ -29,6 +29,8 @@ extern "C" {
 #include "../include/persistence_client_library_error_def.h"
 #include "../include/persistence_client_library_key.h"
 
+#include <persComRct.h>
+
 #include <dlt/dlt.h>
 #include <dlt/dlt_common.h>
 
@@ -36,6 +38,46 @@ extern "C" {
 #include <stdio.h>
 
 
+
+/// structure used to manage database context
+typedef struct _PersistenceDbContext_s
+{
+   unsigned int ldbid;
+   unsigned int user_no;
+   unsigned int seat_no;
+} PersistenceDbContext_s;
+
+/// persistence information
+typedef struct _PersistenceInfo_s
+{
+   PersistenceDbContext_s           context;          /**< database context*/
+   PersistenceConfigurationKey_s    configKey;        /**< prct configuration key*/
+
+} PersistenceInfo_s;
+
+
+/** storages to manage the data */
+typedef enum PersDefaultType_e_
+{
+   PersDefaultType_Configurable = 0,  /**< get the data from configurable defaults */
+   PersDefaultType_Factory,           /**< get the data from factory defaults */
+
+   /** insert new entries here ... */
+   PersDefaultType_LastEntry          /**< last entry */
+
+} PersDefaultType_e;
+
+/** storages to manage the data */
+typedef enum PersGetDefault_e_
+{
+   PersGetDefault_Data = 0,           /**< get the data from configurable defaults */
+   PersGetDefault_Size,               /**< get the data from factory defaults */
+
+   /** insert new entries here ... */
+   PersGetDefault_LastEntry           /**< last entry */
+
+} PersGetDefault_e;
+
 /// enumerator used to identify the policy to manage the data
 typedef enum _PersNotifyRegPolicy_e
 {
@@ -165,7 +207,7 @@ extern char gAppId[MaxAppNameLen];
 extern int gMaxKeyValDataSize;
 
 /// the DLT context
-extern DltContext gDLTContext;
+extern DltContext gPclDLTContext;
 
 /// flag to indicate if client library has been initialized
 extern unsigned int gPclInitialized;
index 3818218..5ecbfac 100644 (file)
  * @see            
  */
 
-#include "../include_protected/persistence_client_library_db_access.h"
-#include "../include_protected/persistence_client_library_rc_table.h"
+#include "persistence_client_library_db_access.h"
 #include "persistence_client_library_custom_loader.h"
-#include "persistence_client_library_itzam_errors.h"
+#include "persistence_client_library_dbus_service.h"
 #include "persistence_client_library_prct_access.h"
 
-#include "persistence_client_library_dbus_service.h"
+#include <persComErrors.h>
+#include <persComDataOrg.h>
+#include <persComDbAccess.h>
 
 #include <dbus/dbus.h>
 #include <string.h>
 #include <errno.h>
 
 
-/// definition of a key-value pair stored in the database
-typedef struct _KeyValuePair_s
-{
-    char m_key[DbKeySize];    /// the key
-    char m_data[DbValueSize];    /// the data
-    unsigned int m_data_size;   /// the size of the data
-}
-KeyValuePair_s;
-
-
-// definition of a cursor entry
-typedef struct _CursorEntry_s
-{
-   itzam_btree_cursor m_cursor;
-   itzam_btree        m_btree;
-   int                m_empty;
-}
-CursorEntry_s;
-
-// cursor array handle
-CursorEntry_s gCursorArray[MaxPersHandle];
-
-/// handle index
-static int gHandleIdx = 1;
-
-/// free handle array
-int gFreeCursorHandleArray[MaxPersHandle];
-// free head index
-int gFreeCursorHandleIdxHead = 0;
-
-// mutex to controll access to the cursor array
-pthread_mutex_t gCursorMtx = PTHREAD_MUTEX_INITIALIZER;
-
 
 /// btree array
-static itzam_btree gBtree[DbTableSize][PersistencePolicy_LastEntry];
-static int gBtreeCreated[DbTableSize][PersistencePolicy_LastEntry] = { {0} };
+static int gHandlesDB[DbTableSize][PersistencePolicy_LastEntry];
+static int gHandlesDBCreated[DbTableSize][PersistencePolicy_LastEntry] = { {0} };
 
 
 // function prototype
 int pers_send_Notification_Signal(const char* key, PersistenceDbContext_s* context, unsigned int reason);
-int pers_get_default_data(char* dbPath, char* key, unsigned char* buffer, unsigned int buffer_size);
 
 
+char* pers_get_raw_key(char *key)
+{
+   char *temp = NULL;
+   char *rawKey = key;
+
+   temp = strrchr(key, (int)'/');
+   
+   if (NULL != temp)
+   {
+         rawKey = temp + 1;
+   }
+
+   return rawKey;
+}
 
 
-int pers_db_open_default(itzam_btree* btree, const char* dbPath, int configDefault)
+int pers_db_open_default(const char* dbPath, PersDefaultType_e DefaultType)
 {
-   itzam_state  state = ITZAM_FAILED;
+   int ret = 0;
    char path[DbPathMaxLen] = {0};
 
-   if(1 == configDefault)
+   if (PersDefaultType_Configurable == DefaultType)
    {
-      snprintf(path, DbPathMaxLen, "%s%s", dbPath, gConfigDefault);
+      snprintf(path, DbPathMaxLen, "%s%s", dbPath, gLocalConfigurableDefault);
    }
-   else if(0 == configDefault)
+   else if (PersDefaultType_Factory== DefaultType)
    {
-      snprintf(path, DbPathMaxLen, "%s%s", dbPath, gDefault);
+      snprintf(path, DbPathMaxLen, "%s%s", dbPath, gLocalFactoryDefault);
    }
    else
    {
-      return -1;  // invalid
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_open_default ==> unknown DefaultType"));
+      ret = EPERS_COMMON;
+   }
+
+   if (EPERS_COMMON != ret)
+   {
+      ret = persComDbOpen(path, 0);
+      if (ret < 0)
+      {
+         ret = EPERS_COMMON;
+         DLT_LOG(gPclDLTContext, DLT_LOG_WARN,
+                              DLT_STRING("pers_db_open_default() -> persComDbOpen() -> problem open db: "),
+                              DLT_STRING(path),
+                              DLT_STRING(" Code: "),
+                              DLT_INT(ret));
+      }
    }
 
-   state = itzam_btree_open(btree, path, itzam_comparator_string, error_handler, 0/*recover*/, 0/*read_only*/);
-   if (state != ITZAM_OKAY)
+   return ret;
+}
+
+
+int pers_get_defaults(char* dbPath, char* key, unsigned char* buffer, unsigned int buffer_size, PersGetDefault_e job)
+{
+   PersDefaultType_e i = PersDefaultType_Configurable;
+   int handleDefaultDB = -1;
+   int read_size = EPERS_NOKEY;
+
+   key = pers_get_raw_key(key); /* We need only the raw key without a prefixed '/node/' or '/user/1/seat/0' etc... */
+
+   for(i=0; i<PersDefaultType_LastEntry; i++)
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_open_default ==> itzam_btree_open => Itzam problem"), DLT_STRING(STATE_MESSAGES[state]));
+      handleDefaultDB = pers_db_open_default(dbPath, i);
+      if(handleDefaultDB >= 0)
+      {
+         if (PersGetDefault_Data == job)
+         {
+         }
+         else if (PersGetDefault_Size == job)
+         {
+            read_size = persComDbGetKeySize(handleDefaultDB, key);
+         }
+         else
+         {
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_get_defaults ==> unknown job"));
+            break;
+         }
+
+         if (0 > persComDbClose(handleDefaultDB))
+         {
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_get_defaults ==> persComDbClose returned with error"));
+         }
+
+         if(read_size < 0) // check read_size
+         {
+            if (PersDefaultType_Configurable == i)
+            {
+               DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("Key '"),
+                                                  DLT_STRING(key),
+                                                  DLT_STRING("' not found in "),
+                                                  DLT_STRING(dbPath),
+                                                  DLT_STRING(gLocalConfigurableDefault));
+            }
+            else if (PersDefaultType_Factory == i)
+            {
+               DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("Key '"),
+                                                  DLT_STRING(key),
+                                                  DLT_STRING("' not found in "),
+                                                  DLT_STRING(dbPath),
+                                                  DLT_STRING(gLocalFactoryDefault));
+            }
+            else
+            {
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_get_defaults ==> unknown PersDefaultType: "),
+                                                   DLT_INT(i));
+            }
+
+            if(PERS_COM_ERR_NOT_FOUND == read_size)
+            {
+               read_size = EPERS_NOKEY;
+            }
+         }
+         else
+         {
+            break;
+         }
+      }
    }
 
-   return 1;
+   return read_size;
+
 }
 
 
-itzam_btree* pers_db_open(PersistenceInfo_s* info, const char* dbPath)
+int database_get(PersistenceInfo_s* info, const char* dbPath)
 {
    int arrayIdx = 0;
-   itzam_btree* btree = NULL;
+   int handleDB = -1;
 
    // create array index: index is a combination of resource config table type and group
-   arrayIdx = info->configKey.storage + info->context.ldbid;
+   arrayIdx = info->configKey.storage + info->context.ldbid ;
 
    //if(arrayIdx <= DbTableSize)
    if(arrayIdx < DbTableSize)
    {
-      if(gBtreeCreated[arrayIdx][info->configKey.policy] == 0)
+      if(gHandlesDBCreated[arrayIdx][info->configKey.policy] == 0)
       {
-         itzam_state  state = ITZAM_FAILED;
+
          char path[DbPathMaxLen] = {0};
 
          if(PersistencePolicy_wt == info->configKey.policy)
          {
-            snprintf(path, DbPathMaxLen, "%s%s", dbPath, gWt);
+            snprintf(path, DbPathMaxLen, "%s%s", dbPath, gLocalWt);
          }
          else if(PersistencePolicy_wc == info->configKey.policy)
          {
-            snprintf(path, DbPathMaxLen, "%s%s", dbPath, gCached);
+            snprintf(path, DbPathMaxLen, "%s%s", dbPath, gLocalCached);
          }
          else
          {
-            return btree;
+            handleDB = -2;
          }
 
-         state = itzam_btree_open(&gBtree[arrayIdx][info->configKey.policy], path,
-                                  itzam_comparator_string, error_handler, 0/*recover*/, 0/*read_only*/);
-         if (state != ITZAM_OKAY)
+         if (handleDB == -1)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_open ==> itzam_btree_open => Itzam problem"), DLT_STRING(STATE_MESSAGES[state]));
+            handleDB = persComDbOpen(path, 0x01);
+            if(handleDB >= 0)
+            {
+               gHandlesDB[arrayIdx][info->configKey.policy] = handleDB ;
+               gHandlesDBCreated[arrayIdx][info->configKey.policy] = 1;
+            }
+            else
+            {
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("database_get ==> persComDbOpen() failed"));
+            }
+         }
+         else
+         {
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("database_get ==> wrong policy! Cannot extend dbPath wit database."));
          }
-         gBtreeCreated[arrayIdx][info->configKey.policy] = 1;
       }
-      // assign database
-      btree = &gBtree[arrayIdx][info->configKey.policy];
+      else
+      {
+         handleDB = gHandlesDB[arrayIdx][info->configKey.policy];
+      }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_open ==> invalid storage type"), DLT_STRING(dbPath));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("database_get ==> invalid storage type"), DLT_STRING(dbPath));
    }
-   return btree;
-}
 
 
 
-void pers_db_close(PersistenceInfo_s* info)
+   return handleDB;
+}
+
+
+void database_close(PersistenceInfo_s* info)
 {
    int arrayIdx = info->configKey.storage + info->context.ldbid;
 
    if(info->configKey.storage <= PersistenceStorage_shared )
    {
-      itzam_state  state = ITZAM_FAILED;
-      state = itzam_btree_close(&gBtree[arrayIdx][info->configKey.policy]);
-      if (state != ITZAM_OKAY)
+      int iErrorCode = persComDbClose(gHandlesDB[arrayIdx][info->configKey.policy]) ;
+      if (iErrorCode < 0)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_close ==> itzam_btree_close => Itzam problem"), DLT_STRING(STATE_MESSAGES[state]));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("database_close ==> persComDbClose() failed"));
+      }
+      else
+      {
+        gHandlesDBCreated[arrayIdx][info->configKey.policy] = 0;
       }
-      gBtreeCreated[arrayIdx][info->configKey.policy] = 0;
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_close ==> invalid storage type"), DLT_INT(info->context.ldbid ));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("database_close ==> invalid storage type"), DLT_INT(info->context.ldbid ));
    }
 }
 
-
-
-void pers_db_close_all()
+void database_close_all()
 {
    int i = 0;
 
    for(i=0; i<DbTableSize; i++)
    {
       // close write cached database
-      if(gBtreeCreated[i][PersistencePolicy_wc] == 1)
+      if(gHandlesDBCreated[i][PersistencePolicy_wc] == 1)
       {
-         itzam_state  state = ITZAM_FAILED;
-         state = itzam_btree_close(&gBtree[i][PersistencePolicy_wc]);
-         if (state != ITZAM_OKAY)
+         int iErrorCode = persComDbClose(gHandlesDB[i][PersistencePolicy_wc]);
+         if (iErrorCode < 0)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_close_all ==> itzam_btree_close => Itzam problem:"), DLT_STRING(STATE_MESSAGES[state]) );
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("database_close_all => failed to close db => persComDbClose"));
+         }
+         else
+         {
+             gHandlesDBCreated[i][PersistencePolicy_wc] = 0;
          }
-         gBtreeCreated[i][PersistencePolicy_wc] = 0;
       }
 
       // close write through database
-      if(gBtreeCreated[i][PersistencePolicy_wt] == 1)
+      if(gHandlesDBCreated[i][PersistencePolicy_wt] == 1)
       {
-         itzam_state  state = ITZAM_FAILED;
-         state = itzam_btree_close(&gBtree[i][PersistencePolicy_wt]);
-         if (state != ITZAM_OKAY)
+         int iErrorCode = persComDbClose(gHandlesDB[i][PersistencePolicy_wt]);
+         if (iErrorCode < 0)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_close_all ==>itzam_btree_close => Itzam problem:"), DLT_STRING(STATE_MESSAGES[state]));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("database_close_all => failed to close db => persComDbClose"));
          }
-         gBtreeCreated[i][PersistencePolicy_wt] = 0;
-      }
-   }
-}
-
-
-void pers_rct_close_all()
-{
-   int i = 0;
-   itzam_btree* resourceTable = NULL;
-   itzam_state  state = ITZAM_FAILED;
-
-   // close open persistence resource configuration table
-   for(i=0; i< PrctDbTableSize; i++)
-   {
-      resourceTable = (itzam_btree*)get_resource_cfg_table_by_idx(i);
-      // dereference opend database
-      if(resourceTable != NULL &&  get_resource_cfg_table_status(i) == 1)
-      {
-         state = itzam_btree_close(resourceTable);
-         invalidate_resource_cfg_table(i);
-         if (state != ITZAM_OKAY)
+         else
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("process_prepare_shutdown => itzam_btree_close: Itzam problem"), DLT_STRING(STATE_MESSAGES[state]));
+            gHandlesDBCreated[i][PersistencePolicy_wt] = 0;
          }
       }
    }
 }
 
-int pers_db_read_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned char* buffer, unsigned int buffer_size)
+
+
+int persistence_get_data(char* dbPath, char* key, PersistenceInfo_s* info, unsigned char* buffer, unsigned int buffer_size)
 {
    int read_size = -1;
+   int ret_defaults = -1;
 
    if(   PersistenceStorage_shared == info->configKey.storage
       || PersistenceStorage_local == info->configKey.storage)
    {
-      itzam_btree* btree = NULL;
-      int keyFound = 0;
-
-      btree = pers_db_open(info, dbPath);
-      if(btree != NULL)
+      int handleDB = database_get(info, dbPath);
+      if(handleDB >= 0)
       {
-         KeyValuePair_s search;
-
-         if(itzam_true == itzam_btree_find(btree, key, &search))
+         read_size = persComDbReadKey(handleDB, key, (char*)buffer, buffer_size) ;
+         if(read_size < 0)
          {
-            read_size = search.m_data_size;
-            if(read_size > buffer_size)
-            {
-               read_size = buffer_size;   // truncate data size to buffer size
-            }
-            memcpy(buffer, search.m_data, read_size);
-            keyFound = 1;
+            read_size = pers_get_defaults(dbPath, key, buffer, buffer_size, PersGetDefault_Data); /* 0 ==> Get data */
          }
       }
-      if(keyFound == 0) // check for default values.
-      {
-         read_size = pers_get_default_data(dbPath, key, buffer, buffer_size);
-      }
    }
    else if(PersistenceStorage_custom == info->configKey.storage)   // custom storage implementation via custom library
    {
@@ -282,90 +327,25 @@ int pers_db_read_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned
             snprintf(pathKeyString, 128, "0x%08X/%s", info->context.ldbid, info->configKey.customID);
          }
          read_size = gPersCustomFuncs[idx].custom_plugin_get_data(pathKeyString, (char*)buffer, buffer_size);
-
-         if(read_size < 0) // check if for custom storage default values are available
-         {
-            read_size = pers_get_default_data(dbPath, key, buffer, buffer_size);
-         }
       }
       else
       {
          read_size = EPERS_NOPLUGINFUNCT;
       }
-   }
-   return read_size;
-}
-
 
-
-int pers_get_default_data(char* dbPath, char* key, unsigned char* buffer, unsigned int buffer_size)
-{
-   int keyFound = 0;
-   int read_size = 0;
-   KeyValuePair_s search;
-
-   itzam_state  state = ITZAM_FAILED;
-   itzam_btree btreeConfDefault;
-   itzam_btree btreeDefault;
-
-   // 1. check if _configurable_ default data is available
-   // --------------------------------
-   if(pers_db_open_default(&btreeConfDefault, dbPath, 1) != -1)
-   {
-      if(itzam_true == itzam_btree_find(&btreeConfDefault, key, &search)) // read db
+      if (1 > read_size)
       {
-         read_size = search.m_data_size;
-         if(read_size > buffer_size)
+         info->configKey.policy = PersistencePolicy_wc;                        /* Set the policy */
+         info->configKey.type   = PersistenceResourceType_key;  /* Set the type */
+         (void)get_db_path_and_key(info, key, NULL, dbPath);
+         DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("Custom Key not available. Try to get default keys from:"),
+                                            DLT_STRING(dbPath),
+                                            DLT_STRING(key));
+         ret_defaults = pers_get_defaults(dbPath, key, buffer, buffer_size, PersGetDefault_Data);
+         if (0 < ret_defaults)
          {
-            read_size = buffer_size;   // truncate data size to buffer size
+                read_size = ret_defaults;
          }
-         memcpy(buffer, search.m_data, read_size);
-
-         keyFound = 1;
-      }
-      else
-      {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_read_key ==> 2. resource not found in default config => search in default db"), DLT_STRING(key));
-      }
-
-      state = itzam_btree_close(&btreeConfDefault);
-      if (state != ITZAM_OKAY)
-      {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_read_key ==> default: itzam_btree_close => Itzam problem"), DLT_STRING(STATE_MESSAGES[state]));
-      }
-   }
-
-   // 2. check if default data is available
-   // --------------------------------
-   if(keyFound == 0)
-   {
-      if(pers_db_open_default(&btreeDefault, dbPath, 0) != -1)
-      {
-         if(itzam_true == itzam_btree_find(&btreeDefault, key, &search)) // read db
-         {
-            read_size = search.m_data_size;
-            if(read_size > buffer_size)
-            {
-               read_size = buffer_size;   // truncate data size to buffer size
-            }
-            memcpy(buffer, search.m_data, read_size);
-         }
-         else
-         {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_read_key ==> 3. reasoure not found in both default db's"), DLT_STRING(key) );
-            read_size = EPERS_NOKEY;   // the key is not available neither in regular db nor in the default db's
-         }
-
-         state = itzam_btree_close(&btreeDefault);
-         if (state != ITZAM_OKAY)
-         {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_read_key ==> default: itzam_btree_close => Itzam problem"), DLT_STRING(STATE_MESSAGES[state]));
-         }
-      }
-      else
-      {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_read_key ==>no resource config table"), DLT_STRING(dbPath), DLT_STRING(key) );
-         read_size = EPERS_NOPRCTABLE;
       }
    }
    return read_size;
@@ -373,85 +353,39 @@ int pers_get_default_data(char* dbPath, char* key, unsigned char* buffer, unsign
 
 
 
-int pers_db_write_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned char* buffer, unsigned int buffer_size)
+int persistence_set_data(char* dbPath, char* key, PersistenceInfo_s* info, unsigned char* buffer, unsigned int buffer_size)
 {
    int write_size = -1;
 
    if(   PersistenceStorage_local == info->configKey.storage
       || PersistenceStorage_shared == info->configKey.storage )
    {
-      write_size = buffer_size;
-      itzam_btree* btree = NULL;
-      itzam_state  state = ITZAM_FAILED;
-      KeyValuePair_s insert;
+      int handleDB = -1 ;
+
 
-      btree = pers_db_open(info, dbPath);
-      if(btree != NULL)
+      handleDB = database_get(info, dbPath);
+      if(handleDB >= 0)
       {
-         int keySize = 0;
-         keySize = (int)strlen((const char*)key);
-         if(keySize < DbKeySize)
+         write_size = persComDbWriteKey(handleDB, key, (char*)buffer, buffer_size) ;
+         if(write_size < 0)
          {
-            int dataSize = 0;
-            dataSize = (int)strlen( (const char*)buffer);
-            if(dataSize < DbValueSize)
-            {
-               // -----------------------------------------------------------------------------
-               // transaction start
-               // itzam_btree_transaction_start(btree);
-
-               // key
-               memset(insert.m_key, 0, DbKeySize);
-               memcpy(insert.m_key, key, keySize);
-               if(itzam_true == itzam_btree_find(btree, key, &insert))
-               {
-                  // key already available, so delete "old" key
-                  state = itzam_btree_remove(btree, (const void *)&insert);
-               }
-
-               // data
-               memset(insert.m_data, 0, DbValueSize);
-               memcpy(insert.m_data, buffer, dataSize);
-
-               // data size
-               insert.m_data_size = buffer_size;
-
-               state = itzam_btree_insert(btree,(const void *)&insert);
-               if (state != ITZAM_OKAY)
-               {
-                  DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_write_key ==> itzam_btree_insert => Itzam problem"), DLT_STRING(STATE_MESSAGES[state]) );
-                  write_size = EPERS_DB_ERROR_INTERNAL;
-               }
-
-               // itzam_btree_transaction_commit(btree);
-               // transaction end
-               // -----------------------------------------------------------------------------
-
-               if(PersistenceStorage_shared == info->configKey.storage)
-               {
-                  int rval = pers_send_Notification_Signal(key, &info->context, pclNotifyStatus_changed);
-                  if(rval <= 0)
-                  {
-                     DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_write_key ==> failed to send notification signal"));
-                     write_size = rval;
-                  }
-               }
-            }
-            else
-            {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_write_key ==> data to long Â» size:"), DLT_INT(dataSize), DLT_INT(DbValueSize) );
-               write_size = EPERS_DB_VALUE_SIZE;
-            }
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_set_data ==> persComDbWriteKey() failure"));
          }
-         else
+
+         if(PersistenceStorage_shared == info->configKey.storage)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_write_key ==> key to long Â» size"), DLT_INT(keySize), DLT_INT(DbKeySize) );
-            write_size = EPERS_DB_KEY_SIZE;
+            int rval = pers_send_Notification_Signal(key, &info->context, pclNotifyStatus_changed);
+            if(rval <= 0)
+            {
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_set_data ==> failed to send notification signal"));
+               write_size = rval;
+            }
          }
+
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_write_key ==> no resource config table"), DLT_STRING(dbPath), DLT_STRING(key));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_set_data ==> no resource config table"), DLT_STRING(dbPath), DLT_STRING(key));
          write_size = EPERS_NOPRCTABLE;
       }
    }
@@ -471,12 +405,12 @@ int pers_db_write_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned
          }
          write_size = gPersCustomFuncs[idx].custom_plugin_set_data(pathKeyString, (char*)buffer, buffer_size);
 
-         if(write_size >= 0)  // success ==> send deleted notification
+         if (write_size == buffer_size) /* Check return value and send notification if OK */
          {
             int rval = pers_send_Notification_Signal(key, &info->context, pclNotifyStatus_changed);
             if(rval <= 0)
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_write_key ==> failed to send notification signal"));
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_set_data ==> failed to send notification signal"));
                write_size = rval;
             }
          }
@@ -491,44 +425,22 @@ int pers_db_write_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned
 
 
 
-int pers_db_get_key_size(char* dbPath, char* key, PersistenceInfo_s* info)
+int persistence_get_data_size(char* dbPath, char* key, PersistenceInfo_s* info)
 {
    int read_size = -1;
+   int ret_defaults = -1;
 
    if(   PersistenceStorage_shared == info->configKey.storage
       || PersistenceStorage_local == info->configKey.storage)
    {
-      int keySize = 0;
-      itzam_btree*  btree = NULL;
-      KeyValuePair_s search;
-
-      btree = pers_db_open(info, dbPath);
-      if(btree != NULL)
+      int handleDB = database_get(info, dbPath);
+      if(handleDB >= 0)
       {
-         keySize = (int)strlen((const char*)key);
-         if(keySize < DbKeySize)
+         read_size = persComDbGetKeySize(handleDB, key);
+         if(read_size < 0)
          {
-            memset(search.m_key,0, DbKeySize);
-            memcpy(search.m_key, key, keySize);
-            if(itzam_true == itzam_btree_find(btree, key, &search))
-            {
-               read_size = search.m_data_size;
-            }
-            else
-            {
-               read_size = EPERS_NOKEY;
-            }
+            read_size = pers_get_defaults(dbPath, key, NULL, 0, PersGetDefault_Size);
          }
-         else
-         {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_get_key_size ==> key to long"), DLT_INT(keySize), DLT_INT(DbKeySize));
-            read_size = EPERS_DB_KEY_SIZE;
-         }
-      }
-      else
-      {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_get_key_size ==> no config table"), DLT_STRING(dbPath), DLT_STRING(key));
-         read_size = EPERS_NOPRCTABLE;
       }
    }
    else if(PersistenceStorage_custom == info->configKey.storage)   // custom storage implementation via custom library
@@ -551,59 +463,57 @@ int pers_db_get_key_size(char* dbPath, char* key, PersistenceInfo_s* info)
       {
          read_size = EPERS_NOPLUGINFUNCT;
       }
+
+      if (1 > read_size)
+      {
+         info->configKey.policy = PersistencePolicy_wc;                        /* Set the policy */
+         info->configKey.type   = PersistenceResourceType_key;  /* Set the type */
+         (void)get_db_path_and_key(info, key, NULL, dbPath);
+         DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("Custom Key not available. Try to get default keys from:"),
+                                            DLT_STRING(dbPath),
+                                            DLT_STRING(key));
+         ret_defaults = pers_get_defaults(dbPath, key, NULL, 0, PersGetDefault_Size);
+         if (0 < ret_defaults)
+         {
+                read_size = ret_defaults;
+         }
+      }
    }
    return read_size;
 }
 
 
 
-int pers_db_delete_key(char* dbPath, char* key, PersistenceInfo_s* info)
+int persistence_delete_data(char* dbPath, char* key, PersistenceInfo_s* info)
 {
    int ret = 0;
    if(PersistenceStorage_custom != info->configKey.storage)
    {
-      itzam_btree*  btree = NULL;
-      KeyValuePair_s delete;
-
-      btree = pers_db_open(info, dbPath);
-      if(btree != NULL)
+      int handleDB = database_get(info, dbPath);
+      if(handleDB >= 0)
       {
-         int keySize = 0;
-         keySize = (int)strlen((const char*)key);
-         if(keySize < DbKeySize)
+         ret = persComDbDeleteKey(handleDB, key) ;
+         if(ret < 0)
          {
-            // -----------------------------------------------------------------------------
-            // transaction start
-            itzam_btree_transaction_start(btree);
-
-            itzam_state  state;
-
-            memset(delete.m_key,0, DbKeySize);
-            memcpy(delete.m_key, key, keySize);
-            state = itzam_btree_remove(btree, (const void *)&delete);
-            if (state != ITZAM_OKAY)
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_delete_data => persComDbDeleteKey failed: "), DLT_STRING(key));
+            if(PERS_COM_ERR_NOT_FOUND == ret)
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_delete_key ==> itzam_btree_remove => Itzam problem"), DLT_STRING(STATE_MESSAGES[state]));
-               ret = EPERS_DB_ERROR_INTERNAL;
+                ret = EPERS_NOKEY ;
             }
-            itzam_btree_transaction_commit(btree);
-            // transaction end
-            // -----------------------------------------------------------------------------
-
-            if(PersistenceStorage_shared == info->configKey.storage)
+            else
             {
-               ret = pers_send_Notification_Signal(key, &info->context, pclNotifyStatus_deleted);
+                ret = EPERS_DB_ERROR_INTERNAL ;
             }
          }
-         else
+
+         if(PersistenceStorage_shared == info->configKey.storage)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_delete_key ==> key to long"), DLT_INT(keySize), DLT_INT(DbKeySize));
-            ret = EPERS_DB_KEY_SIZE;
+            pers_send_Notification_Signal(key, &info->context, pclNotifyStatus_deleted);
          }
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_delete_key ==> no resource config table"), DLT_STRING(dbPath), DLT_STRING(key));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_delete_data ==> no resource config table"), DLT_STRING(dbPath), DLT_STRING(key));
          ret = EPERS_NOPRCTABLE;
       }
    }
@@ -622,9 +532,10 @@ int pers_db_delete_key(char* dbPath, char* key, PersistenceInfo_s* info)
             snprintf(pathKeyString, 128, "0x%08X/%s", info->context.ldbid, info->configKey.customID);
          }
          ret = gPersCustomFuncs[idx].custom_plugin_delete_data(pathKeyString);
-         if(ret >= 0)   // success ==> send deleted notification
+
+         if(0 <= ret) /* Check return value and send notification if OK */
          {
-            ret = pers_send_Notification_Signal(key, &info->context, pclNotifyStatus_deleted);
+            pers_send_Notification_Signal(key, &info->context, pclNotifyStatus_deleted);
          }
       }
       else
@@ -662,7 +573,7 @@ int persistence_notify_on_change(char* key, unsigned int ldbid, unsigned int use
 
       if(-1 == deliverToMainloop(CMD_REG_NOTIFY_SIGNAL, 0, 0))
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_notify_on_change => failed to write to pipe"), DLT_INT(errno));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_notify_on_change => failed to write to pipe"), DLT_INT(errno));
          rval = -1;
       }
    }
@@ -693,7 +604,7 @@ int pers_send_Notification_Signal(const char* key, PersistenceDbContext_s* conte
 
       if(-1 == deliverToMainloop(CMD_SEND_NOTIFY_SIGNAL, 0,0) )
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_send_Notification_Signal => failed to write to pipe"), DLT_INT(errno));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_send_Notification_Signal => failed to write to pipe"), DLT_INT(errno));
          rval = EPERS_NOTIFY_SIG;
       }
    }
@@ -706,278 +617,18 @@ int pers_send_Notification_Signal(const char* key, PersistenceDbContext_s* conte
 }
 
 
-//---------------------------------------------------------------------------------------------------------
-// C U R S O R    F U N C T I O N S
-//---------------------------------------------------------------------------------------------------------
-
-int get_cursor_handle()
-{
-   int handle = 0;
-
-   if(pthread_mutex_lock(&gCursorMtx) == 0)
-   {
-      if(gFreeCursorHandleIdxHead > 0)   // check if we have a free spot in the array before the current max
-      {
-         handle = gFreeCursorHandleArray[--gFreeCursorHandleIdxHead];
-      }
-      else
-      {
-         if(gHandleIdx < MaxPersHandle-1)
-         {
-            handle = gHandleIdx++;  // no free spot before current max, increment handle index
-         }
-         else
-         {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("get_cursor_handle ==> Reached maximum of open handles:"), DLT_INT(MaxPersHandle));
-            handle = -1;
-         }
-      }
-      pthread_mutex_unlock(&gCursorMtx);
-   }
-   return handle;
-}
-
-
-void close_cursor_handle(int handlerDB)
-{
-   if(pthread_mutex_lock(&gCursorMtx) == 0)
-   {
-      if(gFreeCursorHandleIdxHead < MaxPersHandle)
-      {
-         gFreeCursorHandleArray[gFreeCursorHandleIdxHead++] = handlerDB;
-      }
-      pthread_mutex_unlock(&gCursorMtx);
-   }
-}
-
-
-
-int pers_db_cursor_create(char* dbPath)
-{
-   int handle = -1;
-   itzam_state  state = ITZAM_FAILED;
-
-   handle = get_cursor_handle();
-
-   if(handle < MaxPersHandle && handle >= 0)
-   {
-      // open database
-      state = itzam_btree_open(&gCursorArray[handle].m_btree, dbPath, itzam_comparator_string, error_handler, 1/*recover*/, 0/*read_only*/);
-      if (state != ITZAM_OKAY)
-      {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_cursor_create ==> itzam_btree_open"), DLT_STRING(STATE_MESSAGES[state]));
-      }
-      else
-      {
-         itzam_state  state;
-
-         state = itzam_btree_cursor_create(&gCursorArray[handle].m_cursor, &gCursorArray[handle].m_btree);
-         if(state == ITZAM_OKAY)
-         {
-            gCursorArray[handle].m_empty = 0;
-         }
-         else
-         {
-            gCursorArray[handle].m_empty = 1;
-         }
-      }
-   }
-   return handle;
-}
-
-
-
-int pers_db_cursor_next(unsigned int handlerDB)
-{
-   int rval = -99;
-
-   //if(handlerDB < MaxPersHandle && handlerDB >= 0)
-   if(handlerDB < MaxPersHandle )
-   {
-      if(gCursorArray[handlerDB].m_empty != 1)
-      {
-         itzam_bool success;
-         success = itzam_btree_cursor_next(&gCursorArray[handlerDB].m_cursor);
-
-         if(success == itzam_true)
-         {
-            rval = 0;
-         }
-         else
-         {
-            rval = EPERS_LAST_ENTRY_IN_DB;
-         }
-      }
-      else
-      {
-         printf("Invalid handle\n");
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_cursor_next ==> invalid handle: "), DLT_INT(handlerDB));
-      }
-   }
-   else
-   {
-      printf("Handle bigger than max\n");
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_cursor_next ==> handle bigger than max:"), DLT_INT(MaxPersHandle));
-   }
-   return rval;
-}
-
-
-
-int pers_db_cursor_get_key(unsigned int handlerDB, char * bufKeyName_out, int bufSize)
-{
-   int rval = -1;
-   KeyValuePair_s search;
-
-   if(handlerDB < MaxPersHandle)
-   {
-      if(gCursorArray[handlerDB].m_empty != 1)
-      {
-         int length = 0;
-         itzam_btree_cursor_read(&gCursorArray[handlerDB].m_cursor ,(void *)&search);
-         length = strlen(search.m_key);
-         if(length < bufSize)
-         {
-            memcpy(bufKeyName_out, search.m_key, length);
-            rval = 0;
-         }
-         else
-         {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_cursor_get_key  ==> buffer to small Â» keySize: "), DLT_INT(bufSize));
-         }
-      }
-      else
-      {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_db_cursor_get_key  ==>  invalid handle:"), DLT_INT(handlerDB));
-      }
-   }
-   else
-   {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_db_cursor_get_key ==> handle bigger than max:"), DLT_INT(MaxPersHandle));
-   }
-   return rval;
-}
-
-
-
-int pers_db_cursor_get_data(unsigned int handlerDB, char * bufData_out, int bufSize)
-{
-   int rval = -1;
-   KeyValuePair_s search;
-
-   if(handlerDB < MaxPersHandle)
-   {
-      if(gCursorArray[handlerDB].m_empty != 1)
-      {
-         int length = 0;
-         itzam_btree_cursor_read(&gCursorArray[handlerDB].m_cursor ,(void *)&search);
-
-         length = strlen(search.m_data);
-         if(length < bufSize)
-         {
-            memcpy(bufData_out, search.m_data, length);
-            rval = 0;
-         }
-         else
-         {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_cursor_get_data  ==> buffer to small Â» keySize: "), DLT_INT(bufSize));
-         }
-      }
-      else
-      {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_db_cursor_get_data  ==>  invalid handle:"), DLT_INT(handlerDB));
-      }
-   }
-   else
-   {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_db_cursor_get_data ==> handle bigger than max:"), DLT_INT(MaxPersHandle));
-   }
-   return rval;
-}
-
-
-
-int pers_db_cursor_get_data_size(unsigned int handlerDB)
+void pers_rct_close_all()
 {
-   int size = -1;
-   KeyValuePair_s search;
+   int i = 0, rval = 0;
 
-   if(handlerDB < MaxPersHandle)
-   {
-      if(gCursorArray[handlerDB].m_empty != 1)
-      {
-         itzam_btree_cursor_read(&gCursorArray[handlerDB].m_cursor ,(void *)&search);
-         size = strlen(search.m_data);
-      }
-      else
-      {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_cursor_get_data_size  ==>  invalid handle:"), DLT_INT(handlerDB));
-      }
-   }
-   else
-   {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("persistence_db_cursor_get_data  ==>  handle bigger than max:"), DLT_INT(MaxPersHandle));
-   }
-   return size;
-}
-
-
-
-int pers_db_cursor_destroy(unsigned int handlerDB)
-{
-   int rval = -1;
-   if(handlerDB < MaxPersHandle)
+   // close open persistence resource configuration table
+   for(i=0; i< PrctDbTableSize; i++)
    {
-      itzam_btree_cursor_free(&gCursorArray[handlerDB].m_cursor);
-      gCursorArray[handlerDB].m_empty = 1;
-
-      itzam_state state = ITZAM_FAILED;
-      state = itzam_btree_close(&gCursorArray[handlerDB].m_btree);
-      if (state != ITZAM_OKAY)
+      rval =  persComRctClose(i);
+      if (rval != 0)
       {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pers_db_cursor_destroy  ==>  itzam_btree_close: Itzam problem"), DLT_STRING(STATE_MESSAGES[state]));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("process_prepare_shutdown => failed to close db:"), DLT_INT(rval));
       }
-
-      close_cursor_handle(handlerDB);
-
-      rval = 0;
    }
-   return rval;
 }
 
-
-
-
-//-----------------------------------------------------------------------------
-// code to print database content (for debugging)
-//-----------------------------------------------------------------------------
-// walk the database
-/*
-KeyValuePair_s  rec;
-itzam_btree_cursor cursor;
-state = itzam_btree_cursor_create(&cursor, &btree);
-if(state == ITZAM_OKAY)
-{
-  printf("==> Database content ==> db size: %d\n", (int)itzam_btree_count(&btree));
-  do
-  {
-     // get the key pointed to by the cursor
-     state = itzam_btree_cursor_read(&cursor,(void *)&rec);
-     if (state == ITZAM_OKAY)
-     {
-       printf("   Key: %s \n     ==> data: %s\n", rec.m_key, rec.m_data);
-     }
-     else
-        fprintf(stderr, "\nItzam problem: %s\n", STATE_MESSAGES[state]);
-  }
-  while (itzam_btree_cursor_next(&cursor));
-
-  state = itzam_btree_cursor_free(&cursor);
-}
-*/
-//-----------------------------------------------------------------------------
-
-
-
-
-
@@ -28,10 +28,54 @@ extern "C" {
 
 
 #include "persistence_client_library_data_organization.h"
-#include "persistence_client_library_rc_table.h"
+
+//#include "persistence_client_library_rc_table.h"
+#include <persComRct.h>
+
 #include "../include/persistence_client_library_key.h"
 
 
+
+/**
+ * @brief get the raw key without prefixed '/node/', '/user/3/' etc
+ *
+ * @param key the ptr. to the key which should be stripped
+ *
+ * @return the pointer to the stripped 'raw key'
+ */
+char* pers_get_raw_key(char *key);
+
+
+
+/**
+ * @brief open the default value database specified by the 'DefaultType'
+ *
+ * @param dbPath path to the directory were the databases are included in.
+ *
+ * @return >= 0 for valid handler; if an error occured the following error code:
+ *   EPERS_COMMON
+ */
+int pers_db_open_default(const char* dbPath, PersDefaultType_e DefaultType);
+
+
+
+/**
+ * @brief tries to get default values for a key from the configurable and factory default databases.
+ *
+ * @param dbPath the path to the directory where the default databases are in 
+ * @param key the database key
+ * @param buffer the buffer holding the data
+ * @param buffer_size the size of the buffer
+ * @param job the info to specify what to do. Get Data or the DataSize.
+ *
+ * @return the number of bytes read or the size of the key (depends on parameter 'job').
+           negative value if an error occured and the following error code:
+ *   EPERS_NOKEY
+ */
+int pers_get_defaults(char* dbPath, char* key, unsigned char* buffer, unsigned int buffer_size, PersGetDefault_e job);
+
+
+
 /**
  * @brief write data to a key
  *
@@ -44,7 +88,7 @@ extern "C" {
  * @return the number of bytes written or a negative value if an error occured with the following error codes:
  *   EPERS_SETDTAFAILED  EPERS_NOPRCTABLE  EPERS_NOKEYDATA  EPERS_NOKEY
  */
-int pers_db_write_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned char* buffer, unsigned int buffer_size);
+int persistence_set_data(char* dbPath, char* key, PersistenceInfo_s* info, unsigned char* buffer, unsigned int buffer_size);
 
 
 
@@ -60,7 +104,7 @@ int pers_db_write_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned
  * @return the number of bytes read or a negative value if an error occured with the following error codes:
  *  EPERS_NOPRCTABLE  EPERS_NOKEYDATA  EPERS_NOKEY
  */
-int pers_db_read_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned char* buffer, unsigned int buffer_size);
+int persistence_get_data(char* dbPath, char* key, PersistenceInfo_s* info, unsigned char* buffer, unsigned int buffer_size);
 
 
 
@@ -74,7 +118,7 @@ int pers_db_read_key(char* dbPath, char* key, PersistenceInfo_s* info, unsigned
  * @return size of data in bytes read from the key or on error a negative value with the following error codes:
  *  EPERS_NOPRCTABLE or EPERS_NOKEY
  */
-int pers_db_get_key_size(char* dbPath, char* key, PersistenceInfo_s* info);
+int persistence_get_data_size(char* dbPath, char* key, PersistenceInfo_s* info);
 
 
 
@@ -88,7 +132,7 @@ int pers_db_get_key_size(char* dbPath, char* key, PersistenceInfo_s* info);
  * @return 0 if deletion was successfull;
  *         or an error code: EPERS_DB_KEY_SIZE, EPERS_NOPRCTABLE, EPERS_DB_ERROR_INTERNAL or EPERS_NOPLUGINFUNCT
  */
-int pers_db_delete_key(char* dbPath, char* key, PersistenceInfo_s* info);
+int persistence_delete_data(char* dbPath, char* key, PersistenceInfo_s* info);
 
 
 
@@ -97,20 +141,15 @@ int pers_db_delete_key(char* dbPath, char* key, PersistenceInfo_s* info);
  *
  * @param info persistence information
  */
-void pers_db_close(PersistenceInfo_s* info);
+void database_close(PersistenceInfo_s* info);
 
 
 
 /**
  * @brief close all databases
  */
-void pers_db_close_all();
-
+void database_close_all();
 
-/**
- * @brief close all rct's
- */
-void pers_rct_close_all();
 
 
 /**
@@ -118,7 +157,7 @@ void pers_rct_close_all();
  *
  * @param key the database key to register on
  * @param ldbid logical database ID of the resource to monitor
- * @param user_no  the user ID; user_no=0 can not be used as user-ID beacause â€˜0’ is defined as System/node
+ * @param user_no  the user ID; user_no=0 can not be used as user-ID beacause '0' is defined as System/node
  * @param seat_no  the seat number
  * @param callback the function callback to be called
  * @param regPolic ::Notify_register to register; ::Notify_unregister to unregister
@@ -141,70 +180,8 @@ int persistence_notify_on_change(char* key, unsigned int ldbid, unsigned int use
  */
 int pers_send_Notification_Signal(const char* key, PersistenceDbContext_s* context, pclNotifyStatus_e reason);
 
-//---------------------------------------------------------------------------------------------
-// C U R S O R    F U N C T I O N S
-//---------------------------------------------------------------------------------------------
-
-/**
- * @brief create a cursor to a DB ; if success, the cursor points to (-1)
- * to access the first entry in DB, call persistence_db_cursor_next
- *
- * @param dbPath[in] absolute path to the database
- *
- * @return handler to the DB (to be used in successive calls) or error code (< 0)
- */
-int pers_db_cursor_create(char* dbPath);
-
-/**
- * @brief move cursor to the next position
- *
- * @param handlerDB[in] handler to DB (obtained with persistence_db_cursor_create())
- *
- * @return 0 for success, negative value in case of error (check against EPERS_LAST_ENTRY_IN_DB)
- */
-int pers_db_cursor_next(unsigned int handlerDB);
-
-/**
- * @brief get the name of the key pointed by the cursor associated with the database
- *
- * @param handlerDB[in] handler to DB (obtained with persistence_db_cursor_create())
- * @param bufKeyName_out[out] buffer where to pass the name of the key
- * @param bufSize[out] size of bufKeyName_out
- *
- * @return read size (if >= 0), error other way
- */
-int pers_db_cursor_get_key(unsigned int handlerDB, char * bufKeyName_out, int bufSize) ;
-
-/**
- * @brief get the data of the key pointed by the cursor associated with the database
- *
- * @param handlerDB[in] handler to DB (obtained with persistence_db_cursor_create())
- * @param bufKeyData_out[out] buffer where to pass the data of the key
- * @param bufSize[out] size of bufKeyData_out
- *
- * @return read size (if >= 0), error other way
- */
-int pers_db_cursor_get_data(unsigned int handlerDB, char * bufData_out, int bufSize) ;
-
-/**
- * @brief get the data size of the key pointed by the cursor associated with the database
- *
- * @param handlerDB[in] handler to DB (obtained with persistence_db_cursor_create())
- *
- * @return positive value for data size, negative value for error
- */
-int pers_db_cursor_get_data_size(unsigned int handlerDB) ;
-
-
-/**
- * @brief remove the cursor
- *
- * @param handlerDB[in] handler to DB (obtained with persistence_db_cursor_create())
- *
- * @return 0 for success, negative value in case of error
- */
-int pers_db_cursor_destroy(unsigned int handlerDB) ;
 
+void pers_rct_close_all();
 
 #ifdef __cplusplus
 }
index c8a138c..e64dfe8 100644 (file)
 #include "persistence_client_library_dbus_cmd.h"
 
 #include "persistence_client_library_handle.h"
-#include "persistence_client_library_itzam_errors.h"
 #include "persistence_client_library_custom_loader.h"
-#include "persistence_client_library_prct_access.h"
 #include "persistence_client_library_pas_interface.h"
 
-#include "../include_protected/persistence_client_library_data_organization.h"
-#include "../include_protected/persistence_client_library_db_access.h"
+#include "persistence_client_library_data_organization.h"
+#include "persistence_client_library_db_access.h"
 
-#include <itzam.h>
 #include <dlfcn.h>
 
 
@@ -136,22 +133,22 @@ void process_send_notification_signal(DBusConnection* conn)
             }
             else
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_Notification_Signal ==> failed to send dbus message!!"));
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_Notification_Signal ==> failed to send dbus message!!"));
             }
          }
          else
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_Notification_Signal ==> E R R O R  C O N E C T I O N  NULL!!"));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_Notification_Signal ==> E R R O R  C O N E C T I O N  NULL!!"));
          }
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_Notification_Signal ==> ERROR dbus_message_append_args"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_Notification_Signal ==> ERROR dbus_message_append_args"));
       }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_Notification_Signal ==> ERROR invalid notification reason"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_Notification_Signal ==> ERROR invalid notification reason"));
    }
 }
 
@@ -159,6 +156,8 @@ void process_send_notification_signal(DBusConnection* conn)
 
 void process_block_and_write_data_back(unsigned int requestID, unsigned int status)
 {
+   (void)requestID;
+   (void)status;
    // lock persistence data access
    pers_lock_access();
    // sync data back to memory device
@@ -173,6 +172,9 @@ void process_prepare_shutdown(unsigned char requestId, unsigned int status)
 {
    int i = 0;
 
+   (void)requestId;
+   (void)status;
+
    // block write
    pers_lock_access();
 
@@ -191,7 +193,7 @@ void process_prepare_shutdown(unsigned char requestId, unsigned int status)
    pers_rct_close_all();
 
    // close opend database
-   pers_db_close_all();
+   database_close_all();
 
 
    // unload custom client libraries
@@ -230,7 +232,7 @@ void process_send_pas_request(DBusConnection* conn, unsigned int requestID, int
 
          if(!dbus_connection_send(conn, message, 0))
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_register => Access denied"), DLT_STRING(error.message) );
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_register => Access denied"), DLT_STRING(error.message) );
          }
 
          dbus_connection_flush(conn);
@@ -238,12 +240,12 @@ void process_send_pas_request(DBusConnection* conn, unsigned int requestID, int
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_request => ERROR: Invalid message") );
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_request => ERROR: Invalid message") );
       }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_request => ERROR: Invalid connection") );
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_request => ERROR: Invalid connection") );
    }
 }
 
@@ -290,24 +292,24 @@ void process_send_pas_register(DBusConnection* conn, int regType, int notificati
 
             if(!dbus_pending_call_set_notify(pending, msg_pending_func, method, NULL))
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_pas_register => dbus_pending_call_set_notify: FAILED\n") );
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("process_send_pas_register => dbus_pending_call_set_notify: FAILED\n") );
             }
             dbus_pending_call_unref(pending);
          }
          else
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_register =>  ERROR: Invalid message") );
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_register =>  ERROR: Invalid message") );
          }
          dbus_message_unref(message);
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_register =>  ERROR: Invalid busname") );
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_register =>  ERROR: Invalid busname") );
       }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_register =>  ERROR: Invalid connection") );
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_pas_register =>  ERROR: Invalid connection") );
    }
 }
 
@@ -351,19 +353,19 @@ void process_send_lifecycle_register(DBusConnection* conn, int regType, int shut
 
                   if(!dbus_connection_send(conn, message, 0))
                   {
-                     DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_register => Access denied"), DLT_STRING(error.message) );
+                     DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_register => Access denied"), DLT_STRING(error.message) );
                   }
                   dbus_connection_flush(conn);
          dbus_message_unref(message);
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_register => ERROR: Invalid message"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_register => ERROR: Invalid message"));
       }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_register => ERROR: connection isn NULL"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_register => ERROR: connection isn NULL"));
    }
 }
 
@@ -389,7 +391,7 @@ void process_send_lifecycle_request(DBusConnection* conn, int requestId, int sta
 
          if(!dbus_connection_send(conn, message, 0))
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_request => Access denied"), DLT_STRING(error.message) );
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_request => Access denied"), DLT_STRING(error.message) );
           }
 
           dbus_connection_flush(conn);
@@ -397,12 +399,12 @@ void process_send_lifecycle_request(DBusConnection* conn, int requestId, int sta
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_request => ERROR: Invalid message"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_request => ERROR: Invalid message"));
       }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_request => ERROR: connection isn NULL"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("send_lifecycle_request => ERROR: connection isn NULL"));
    }
 }
 
@@ -414,11 +416,13 @@ void msg_pending_func(DBusPendingCall *call, void *data)
    DBusError err;
    dbus_error_init(&err);
 
+   (void)data;
+
    DBusMessage *message = dbus_pending_call_steal_reply(call);
 
    if (dbus_set_error_from_message(&err, message))
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_pending_func ==> Access denied") );
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_pending_func ==> Access denied") );
    }
    else
    {
index 608ae87..694cd6a 100644 (file)
@@ -21,7 +21,7 @@
 #include "persistence_client_library_lc_interface.h"
 #include "persistence_client_library_pas_interface.h"
 #include "persistence_client_library_dbus_cmd.h"
-#include "../include_protected/persistence_client_library_data_organization.h"
+#include "persistence_client_library_data_organization.h"
 
 
 #include <stdio.h>
@@ -88,13 +88,16 @@ int bContinue = 0;
 /* function to unregister ojbect path message handler */
 static void unregisterMessageHandler(DBusConnection *connection, void *user_data)
 {
-   DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("unregisterObjectPath\n"));
+   (void)connection;
+   (void)user_data;
+   DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("unregisterObjectPath\n"));
 }
 
 /* catches messages not directed to any registered object path ("garbage collector") */
 static DBusHandlerResult handleObjectPathMessageFallback(DBusConnection * connection, DBusMessage * message, void * user_data)
 {
    DBusHandlerResult result = DBUS_HANDLER_RESULT_HANDLED;
+   (void)user_data;
 
    // org.genivi.persistence.admin  S I G N A L
    if((0==strcmp("org.genivi.persistence.admin", dbus_message_get_interface(message))))
@@ -108,7 +111,7 @@ static DBusHandlerResult handleObjectPathMessageFallback(DBusConnection * connec
          }
          else
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback -> unknown signal:"), DLT_STRING(dbus_message_get_interface(message)) );
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback -> unknown signal:"), DLT_STRING(dbus_message_get_interface(message)) );
          }
       }
    }
@@ -155,12 +158,12 @@ static DBusHandlerResult handleObjectPathMessageFallback(DBusConnection * connec
 
                if (reply == 0)
                {
-                  DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback => DBus No memory"), DLT_STRING(dbus_message_get_interface(message)) );
+                  DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback => DBus No memory"), DLT_STRING(dbus_message_get_interface(message)) );
                }
 
                if (!dbus_connection_send(connection, reply, 0))
                {
-                  DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback => DBus No memory"), DLT_STRING(dbus_message_get_interface(message)) );
+                  DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback => DBus No memory"), DLT_STRING(dbus_message_get_interface(message)) );
                }
 
                result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;;
@@ -179,7 +182,7 @@ static DBusHandlerResult handleObjectPathMessageFallback(DBusConnection * connec
                }
                else
                {
-                  DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback => gChangeNotifyCallback is not set (possibly NULL)") );
+                  DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback => gChangeNotifyCallback is not set (possibly NULL)") );
                }
                result = DBUS_HANDLER_RESULT_HANDLED;
             }
@@ -215,12 +218,12 @@ static DBusHandlerResult handleObjectPathMessageFallback(DBusConnection * connec
          }
          else
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback -> unknown property:"), DLT_STRING(dbus_message_get_interface(message)) );
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback -> unknown property:"), DLT_STRING(dbus_message_get_interface(message)) );
          }
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback -> not a signal:"), DLT_STRING(dbus_message_get_member(message)) );
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("handleObjectPathMessageFallback -> not a signal:"), DLT_STRING(dbus_message_get_member(message)) );
       }
    }
    return result;
@@ -230,7 +233,9 @@ static DBusHandlerResult handleObjectPathMessageFallback(DBusConnection * connec
 
 static void  unregisterObjectPathFallback(DBusConnection *connection, void *user_data)
 {
-   DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("unregisterObjectPathFallback\n"));
+   (void)connection;
+   (void)user_data;
+   DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("unregisterObjectPathFallback\n"));
 }
 
 
@@ -239,15 +244,15 @@ void* run_mainloop(void* dataPtr)
 {
    // persistence admin message
    static const struct DBusObjectPathVTable vtablePersAdmin
-      = {unregisterMessageHandler, checkPersAdminMsg, NULL, };
+      = {unregisterMessageHandler, checkPersAdminMsg, NULL, NULL, NULL, NULL};
 
    // lifecycle message
    static const struct DBusObjectPathVTable vtableLifecycle
-      = {unregisterMessageHandler, checkLifecycleMsg, NULL, };
+      = {unregisterMessageHandler, checkLifecycleMsg, NULL, NULL, NULL, NULL};
 
    // fallback
    static const struct DBusObjectPathVTable vtableFallback
-      = {unregisterObjectPathFallback, handleObjectPathMessageFallback, NULL, };
+      = {unregisterObjectPathFallback, handleObjectPathMessageFallback, NULL, NULL, NULL, NULL};
 
    // setup the dbus
    mainLoop(vtablePersAdmin, vtableLifecycle, vtableFallback, dataPtr);
@@ -273,7 +278,7 @@ int setup_dbus_mainloop(void)
    // Connect to the bus and check for errors
    if(pAddress != NULL)
    {
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("setup_dbus_mainloop -> Use specific dbus address:"), DLT_STRING(pAddress) );
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("setup_dbus_mainloop -> Use specific dbus address:"), DLT_STRING(pAddress) );
 
       conn = dbus_connection_open_private(pAddress, &err);
 
@@ -281,7 +286,7 @@ int setup_dbus_mainloop(void)
       {
          if(!dbus_bus_register(conn, &err))
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("dbus_bus_register() Error :"), DLT_STRING(err.message) );
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("dbus_bus_register() Error :"), DLT_STRING(err.message) );
             dbus_error_free (&err);
             pthread_mutex_unlock(&gDbusInitializedMtx);
             return -1;
@@ -289,7 +294,7 @@ int setup_dbus_mainloop(void)
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("dbus_connection_open_private() Error :"), DLT_STRING(err.message) );
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("dbus_connection_open_private() Error :"), DLT_STRING(err.message) );
          dbus_error_free(&err);
          pthread_mutex_unlock(&gDbusInitializedMtx);
          return -1;
@@ -297,7 +302,7 @@ int setup_dbus_mainloop(void)
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("Use default dbus bus (DBUS_BUS_SYSTEM)"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("Use default dbus bus (DBUS_BUS_SYSTEM)"));
 
       conn = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
    }
@@ -306,7 +311,7 @@ int setup_dbus_mainloop(void)
    rval = pthread_create(&gMainLoopThread, NULL, run_mainloop, conn);
    if(rval)
    {
-     DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pthread_create( DBUS run_mainloop ) returned an error:"), DLT_INT(rval) );
+     DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pthread_create( DBUS run_mainloop ) returned an error:"), DLT_INT(rval) );
      pthread_mutex_unlock(&gDbusInitializedMtx);
      return -1;
    }
@@ -325,6 +330,7 @@ int setup_dbus_mainloop(void)
 static dbus_bool_t addWatch(DBusWatch *watch, void *data)
 {
    dbus_bool_t result = FALSE;
+   (void)data;
 
    if (ARRAY_SIZE(gPollInfo.fds)>gPollInfo.nfds)
    {
@@ -362,7 +368,9 @@ static void removeWatch(DBusWatch *watch, void *data)
 {
    void* w_data = dbus_watch_get_data(watch);
 
-   DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("removeWatch called "), DLT_INT( (int)watch) );
+   (void)data;
+
+   DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("removeWatch called "), DLT_INT( (int)watch) );
 
    if(w_data)
       free(w_data);
@@ -374,7 +382,8 @@ static void removeWatch(DBusWatch *watch, void *data)
 
 static void watchToggled(DBusWatch *watch, void *data)
 {
-   DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("watchToggled called "), DLT_INT( (int)watch) );
+   (void)data;
+   DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("watchToggled called "), DLT_INT( (int)watch) );
 
    if(dbus_watch_get_enabled(watch))
       addWatch(watch, data);
@@ -386,6 +395,7 @@ static void watchToggled(DBusWatch *watch, void *data)
 
 static dbus_bool_t addTimeout(DBusTimeout *timeout, void *data)
 {
+   (void)data;
    dbus_bool_t ret = FALSE;
 
    if (ARRAY_SIZE(gPollInfo.fds)>gPollInfo.nfds)
@@ -409,18 +419,18 @@ static dbus_bool_t addTimeout(DBusTimeout *timeout, void *data)
             }
             else
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("addTimeout => timerfd_settime() failed"), DLT_STRING(strerror(errno)) );
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("addTimeout => timerfd_settime() failed"), DLT_STRING(strerror(errno)) );
             }
          }
          else
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("addTimeout => timerfd_create() failed"), DLT_STRING(strerror(errno)) );
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("addTimeout => timerfd_create() failed"), DLT_STRING(strerror(errno)) );
          }
       }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("addTimeout => cannot create another fd to be poll()'ed"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("addTimeout => cannot create another fd to be poll()'ed"));
    }
 
    return ret;
@@ -430,15 +440,16 @@ static dbus_bool_t addTimeout(DBusTimeout *timeout, void *data)
 
 static void removeTimeout(DBusTimeout *timeout, void *data)
 {
-
    int i = gPollInfo.nfds;
+   (void)data;
+
    while ((0<i--)&&(timeout!=gPollInfo.objects[i].timeout));
 
    if (0<i)
    {
       if (-1==close(gPollInfo.fds[i].fd))
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("removeTimeout => close() timerfd"), DLT_STRING(strerror(errno)) );
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("removeTimeout => close() timerfd"), DLT_STRING(strerror(errno)) );
       }
 
       --gPollInfo.nfds;
@@ -460,15 +471,17 @@ static void removeTimeout(DBusTimeout *timeout, void *data)
 static void timeoutToggled(DBusTimeout *timeout, void *data)
 {
    int i = gPollInfo.nfds;
+   (void)data;
+
    while ((0<i--)&&(timeout!=gPollInfo.objects[i].timeout));
-   DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("timeoutToggled") );
+   DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("timeoutToggled") );
    if (0<i)
    {
       const int interval = (TRUE==dbus_timeout_get_enabled(timeout))?dbus_timeout_get_interval(timeout):0;
       const struct itimerspec its = { .it_value= {interval/1000, interval%1000} };
       if (-1!=timerfd_settime(gPollInfo.fds[i].fd, 0, &its, NULL))
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("timeoutToggled => timerfd_settime()"), DLT_STRING(strerror(errno)) );
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("timeoutToggled => timerfd_settime()"), DLT_STRING(strerror(errno)) );
       }
    }
 }
@@ -487,7 +500,7 @@ int mainLoop(DBusObjectPathVTable vtable, DBusObjectPathVTable vtable2,
 
    if (dbus_error_is_set(&err))
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => Connection Error:"), DLT_STRING(err.message) );
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => Connection Error:"), DLT_STRING(err.message) );
       dbus_error_free(&err);
    }
    else if (NULL != conn)
@@ -495,7 +508,7 @@ int mainLoop(DBusObjectPathVTable vtable, DBusObjectPathVTable vtable2,
       dbus_connection_set_exit_on_disconnect(conn, FALSE);
       if (-1 == (gEfds = eventfd(0, 0)))
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => eventfd() failed w/ errno:"), DLT_INT(errno) );
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => eventfd() failed w/ errno:"), DLT_INT(errno) );
       }
       else
       {
@@ -518,7 +531,7 @@ int mainLoop(DBusObjectPathVTable vtable, DBusObjectPathVTable vtable2,
             if(   (TRUE!=dbus_connection_set_watch_functions(conn, addWatch, removeWatch, watchToggled, NULL, NULL))
                || (TRUE!=dbus_connection_set_timeout_functions(conn, addTimeout, removeTimeout, timeoutToggled, NULL, NULL)) )
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => dbus_connection_set_watch_functions() failed"));
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => dbus_connection_set_watch_functions() failed"));
             }
             else
             {
@@ -534,7 +547,7 @@ int mainLoop(DBusObjectPathVTable vtable, DBusObjectPathVTable vtable2,
 
                   if (0>ret)
                   {
-                     DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => poll() failed w/ errno "), DLT_INT(errno) );
+                     DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => poll() failed w/ errno "), DLT_INT(errno) );
                   }
                   else if (0==ret)
                   {
@@ -555,13 +568,13 @@ int mainLoop(DBusObjectPathVTable vtable, DBusObjectPathVTable vtable2,
                               unsigned long long nExpCount = 0;
                               if ((ssize_t)sizeof(nExpCount)!=read(gPollInfo.fds[i].fd, &nExpCount, sizeof(nExpCount)))
                               {
-                                 DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => read failed"));
+                                 DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => read failed"));
                               }
-                              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => timeout"));
+                              DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => timeout"));
 
                               if (FALSE==dbus_timeout_handle(gPollInfo.objects[i].timeout))
                               {
-                                 DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => dbus_timeout_handle() failed!?"));
+                                 DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => dbus_timeout_handle() failed!?"));
                               }
                               bContinue = TRUE;
                            }
@@ -575,7 +588,7 @@ int mainLoop(DBusObjectPathVTable vtable, DBusObjectPathVTable vtable2,
                                  while ((-1==(ret = read(gPollInfo.fds[i].fd, buf, 64)))&&(EINTR == errno));
                                  if(ret < 0)
                                  {
-                                    DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => read() failed"), DLT_STRING(strerror(errno)) );
+                                    DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => read() failed"), DLT_STRING(strerror(errno)) );
                                  }
                                  else
                                  {
@@ -617,7 +630,7 @@ int mainLoop(DBusObjectPathVTable vtable, DBusObjectPathVTable vtable2,
                                        */
                                        // ******************************************************
                                        default:
-                                          DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => command not handled"), DLT_INT(buf[0]) );
+                                          DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("mainLoop => command not handled"), DLT_INT(buf[0]) );
                                           break;
                                     }
                                     pthread_cond_signal(&gMainLoopCond);
@@ -702,7 +715,7 @@ int deliverToMainloop_NM(tCmd mainloopCmd, unsigned int param1, unsigned int par
 
    if(-1 == write(gEfds, &cmd, (sizeof(uint64_t))))
    {
-     DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("deliverToMainloop => failed to write to pipe"), DLT_INT(errno));
+     DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("deliverToMainloop => failed to write to pipe"), DLT_INT(errno));
      rval = -1;
    }
 
index a331140..2bf14bf 100644 (file)
 
 #include "persistence_client_library_file.h"
 #include "persistence_client_library_backup_filelist.h"
-#include "../include_protected/persistence_client_library_data_organization.h"
-#include "../include_protected/persistence_client_library_db_access.h"
-#include "../include_protected/crc32.h"
-
 #include "persistence_client_library_pas_interface.h"
 #include "persistence_client_library_handle.h"
 #include "persistence_client_library_prct_access.h"
+#include "persistence_client_library_data_organization.h"
+#include "persistence_client_library_db_access.h"
+#include "crc32.h"
 
+#if USE_FILECACHE
+   #include <persistence_file_cache.h>
+#endif
 
 #include <fcntl.h>   // for open flags
 #include <errno.h>
@@ -60,7 +62,12 @@ int pclFileClose(int fd)
 
          }
          __sync_fetch_and_sub(&gOpenFdArray[fd], FileClosed);   // set closed flag
+#if USE_FILECACHE
+         rval = pfcCloseFile(fd);
+#else
          rval = close(fd);
+#endif
+
       }
       else
       {
@@ -75,23 +82,26 @@ int pclFileClose(int fd)
 
 int pclFileGetSize(int fd)
 {
-   int rval = EPERS_NOT_INITIALIZED;
+   int size = EPERS_NOT_INITIALIZED;
 
    if(gPclInitialized >= PCLinitialized)
    {
+
+#if USE_FILECACHE
+      size = pfcFileGetSize(fd);
+#else
       struct stat buf;
-      int ret = 0;
-      ret = fstat(fd, &buf);
+      size = fstat(fd, &buf);
 
       //DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclFileGetSize fd: "), DLT_INT(fd));
 
-      if(ret != -1)
+      if(size != -1)
       {
-         rval = buf.st_size;
+         size = buf.st_size;
       }
+#endif
    }
-
-   return rval;
+   return size;
 }
 
 
@@ -100,6 +110,9 @@ void* pclFileMapData(void* addr, long size, long offset, int fd)
 {
    void* ptr = 0;
 
+#if USE_FILECACHE
+   DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("pclFileMapData not supported when using file cache"));
+#else
    //DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclFileMapData fd: "), DLT_INT(fd));
 
    if(gPclInitialized >= PCLinitialized)
@@ -114,6 +127,7 @@ void* pclFileMapData(void* addr, long size, long offset, int fd)
          ptr = EPERS_MAP_LOCKFS;
       }
    }
+#endif
 
    return ptr;
 }
@@ -131,7 +145,7 @@ int pclFileOpen(unsigned int ldbid, const char* resource_id, unsigned int user_n
 
       char dbKey[DbKeyMaxLen]      = {0};    // database key
       char dbPath[DbPathMaxLen]    = {0};    // database location
-      char backupPath[DbKeyMaxLen] = {0};    // backup file
+      char backupPath[DbPathMaxLen] = {0};    // backup file
       char csumPath[DbPathMaxLen]  = {0};    // checksum file
 
       //DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclFileOpen: "), DLT_INT(ldbid), DLT_STRING(resource_id) );
@@ -159,8 +173,8 @@ int pclFileOpen(unsigned int ldbid, const char* resource_id, unsigned int user_n
          }
 
          strncpy(fileSubPath, dbPath+length, DbPathMaxLen);
-         snprintf(backupPath, DbPathMaxLen, "%s%s", gBackupPrefix, fileSubPath);
-         snprintf(csumPath,   DbPathMaxLen, "%s%s%s", gBackupPrefix, fileSubPath, ".crc");
+         snprintf(backupPath, DbPathMaxLen-1, "%s%s", gBackupPrefix, fileSubPath);
+         snprintf(csumPath,   DbPathMaxLen-1, "%s%s%s", gBackupPrefix, fileSubPath, ".crc");
 
          if(shared_DB >= 0)                                          // check valid database context
          {
@@ -172,22 +186,35 @@ int pclFileOpen(unsigned int ldbid, const char* resource_id, unsigned int user_n
             {
                if((handle = pclVerifyConsistency(dbPath, backupPath, csumPath, flags)) == -1)
                {
-                  DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileOpen: error => file inconsistent, recovery  N O T  possible!"));
+                  DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileOpen: error => file inconsistent, recovery  N O T  possible!"));
                   return -1;
                }
             }
+            else
+            {
+               DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("pclFileOpen: No Backup => file is read only OR is in blacklist!"));
+            }
+
+#if USE_FILECACHE
+
+            if(handle > 0)   // when the file is open, close it and do a new open unde PFC control
+            {
+               close(handle);
+            }
 
-            // open file
+            handle = pfcOpenFile(dbPath);
+#else
             if(handle <= 0)   // check if open is needed or already done in verifyConsistency
             {
                handle = open(dbPath, flags);
             }
+#endif
 
             if(handle == -1 && errno == ENOENT) // file does not exist, create file and folder
             {
                if( (handle = pclCreateFile(dbPath)) == -1)
                {
-                  DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileOpen: error => failed to create file: "), DLT_STRING(dbPath));
+                  DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileOpen: error => failed to create file: "), DLT_STRING(dbPath));
                }
             }
 
@@ -236,6 +263,7 @@ int pclFileOpen(unsigned int ldbid, const char* resource_id, unsigned int user_n
          handle = EPERS_RESOURCE_NO_FILE;
       }
    }
+
    return handle;
 }
 
@@ -248,7 +276,11 @@ int pclFileReadData(int fd, void * buffer, int buffer_size)
    //DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclFileReadData fd: "), DLT_INT(fd));
    if(gPclInitialized >= PCLinitialized)
    {
+#if USE_FILECACHE
+      readSize = pfcReadFile(fd, buffer, buffer_size);
+#else
       readSize = read(fd, buffer, buffer_size);
+#endif
    }
    return readSize;
 }
@@ -284,13 +316,13 @@ int pclFileRemove(unsigned int ldbid, const char* resource_id, unsigned int user
             rval = remove(dbPath);
             if(rval == -1)
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileRemove => remove ERROR"), DLT_STRING(strerror(errno)) );
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileRemove => remove ERROR"), DLT_STRING(strerror(errno)) );
             }
          }
          else
          {
             rval = shared_DB;
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileRemove ==> no valid database context or resource not a file"));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileRemove ==> no valid database context or resource not a file"));
          }
       }
       else
@@ -314,7 +346,11 @@ int pclFileSeek(int fd, long int offset, int whence)
    {
       if(AccessNoLock != isAccessLocked() ) // check if access to persistent data is locked
       {
+#if USE_FILECACHE
+         rval = pfcFileSeek(fd, offset, whence);
+#else
          rval = lseek(fd, offset, whence);
+#endif
       }
       else
       {
@@ -377,7 +413,11 @@ int pclFileWriteData(int fd, const void * buffer, int buffer_size)
                   gFileHandleArray[fd].backupCreated = 1;
                }
 
+#if USE_FILECACHE
+               size = pfcWriteFile(fd, buffer, buffer_size);
+#else
                size = write(fd, buffer, buffer_size);
+#endif
             }
             else
             {
@@ -406,7 +446,7 @@ int pclFileCreatePath(unsigned int ldbid, const char* resource_id, unsigned int
 
       char dbKey[DbKeyMaxLen]      = {0};    // database key
       char dbPath[DbPathMaxLen]    = {0};    // database location
-      char backupPath[DbKeyMaxLen] = {0};    // backup file
+      char backupPath[DbPathMaxLen] = {0};    // backup file
       char csumPath[DbPathMaxLen]  = {0};    // checksum file
 
       //DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("pclFileOpen: "), DLT_INT(ldbid), DLT_STRING(resource_id) );
@@ -428,12 +468,12 @@ int pclFileCreatePath(unsigned int ldbid, const char* resource_id, unsigned int
             if(   dbContext.configKey.permission != PersistencePermission_ReadOnly
                && pclBackupNeeded(dbPath) )
             {
-               snprintf(backupPath, DbPathMaxLen, "%s%s", dbPath, "~");
-               snprintf(csumPath,   DbPathMaxLen, "%s%s", dbPath, "~.crc");
+               snprintf(backupPath, DbPathMaxLen-1, "%s%s", dbPath, "~");
+               snprintf(csumPath,   DbPathMaxLen-1, "%s%s", dbPath, "~.crc");
 
                if((handle = pclVerifyConsistency(dbPath, backupPath, csumPath, flags)) == -1)
                {
-                  DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileOpen: error => file inconsistent, recovery  N O T  possible!"));
+                  DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclFileOpen: error => file inconsistent, recovery  N O T  possible!"));
                   return -1;
                }
                // we don't need the file handle here
index 7be6e3b..b1c9f6b 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <pthread.h>
 #include <stdlib.h>
+#include <string.h>
 
 /// handle index
 static int gHandleIdx = 1;
@@ -69,7 +70,7 @@ int get_persistence_handle_idx()
          else
          {
             handle = EPERS_MAXHANDLE;
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("get_persistence_handle_idx => Reached maximum of open handles: "), DLT_INT(MaxPersHandle));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("get_persistence_handle_idx => Reached maximum of open handles: "), DLT_INT(MaxPersHandle));
          }
       }
       pthread_mutex_unlock(&gMtx);
@@ -99,9 +100,10 @@ void close_all_persistence_handle()
    if(pthread_mutex_lock(&gMtx) == 0)
    {
       // "free" all handles
-      memset(gFreeHandleArray, 0, MaxPersHandle);
-      memset(gOpenFdArray, 0, MaxPersHandle);
-      memset(gOpenFdArray, 0, MaxPersHandle);
+      memset(gFreeHandleArray, 0, sizeof(gFreeHandleArray));
+      memset(gOpenHandleArray, 0, sizeof(gOpenHandleArray));
+      memset(gOpenFdArray,     0, sizeof(gOpenFdArray));
+
 
       // reset variables
       gHandleIdx = 1;
index 2a1c200..369884b 100644 (file)
@@ -20,9 +20,9 @@
  * @see            
  */
 
-#include "../include_protected/persistence_client_library_data_organization.h"
-#include "../include_protected/persistence_client_library_rc_table.h"
+#include "persistence_client_library_data_organization.h"
 
+#include <persComRct.h>
 
 /// key handle structure definition
 typedef struct _PersistenceKeyHandle_s
@@ -31,8 +31,7 @@ typedef struct _PersistenceKeyHandle_s
    char dbPath[DbPathMaxLen];       /// path to the database
    char dbKey[DbKeyMaxLen];         /// database key
    char resourceID[DbResIDMaxLen];  /// resourceID
-}
-PersistenceKeyHandle_s;
+} PersistenceKeyHandle_s;
 
 
 /// file handle structure definition
@@ -43,8 +42,9 @@ typedef struct _PersistenceFileHandle_s
    char backupPath[DbPathMaxLen];         /// path to the backup file
    char csumPath[DbPathMaxLen];           /// path to the checksum file
    char* filePath;                        /// the path
-}
-PersistenceFileHandle_s;
+} PersistenceFileHandle_s;
+
+
 
 
 /// persistence key handle array
@@ -80,13 +80,10 @@ int get_persistence_handle_idx();
 void set_persistence_handle_close_idx(int handle);
 
 
-
-/**
- * @brief close open file handles
- *
- */
 void close_all_persistence_handle();
 
 
+
+
 #endif /* PERSISTENCY_CLIENT_LIBRARY_HANDLE_H */
 
diff --git a/src/persistence_client_library_itzam_errors.c b/src/persistence_client_library_itzam_errors.c
deleted file mode 100644 (file)
index 843f675..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
-    Itzam/C (version 6.0) is an embedded database engine written in Standard C.
-
-    Copyright 2011 Scott Robert Ladd. All rights reserved.
-
-    Older versions of Itzam/C are:
-        Copyright 2002, 2004, 2006, 2008 Scott Robert Ladd. All rights reserved.
-
-    Ancestral code, from Java and C++ books by the author, is:
-        Copyright 1992, 1994, 1996, 2001 Scott Robert Ladd.  All rights reserved.
-
-    Itzam/C is user-supported open source software. It's continued development is dependent on
-    financial support from the community. You can provide funding by visiting the Itzam/C
-    website at:
-
-        http://www.coyotegulch.com
-
-    You may license Itzam/C in one of two fashions:
-
-    1) Simplified BSD License (FreeBSD License)
-
-    Redistribution and use in source and binary forms, with or without modification, are
-    permitted provided that the following conditions are met:
-
-    1.  Redistributions of source code must retain the above copyright notice, this list of
-        conditions and the following disclaimer.
-
-    2.  Redistributions in binary form must reproduce the above copyright notice, this list
-        of conditions and the following disclaimer in the documentation and/or other materials
-        provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY SCOTT ROBERT LADD ``AS IS'' AND ANY EXPRESS OR IMPLIED
-    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-    FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SCOTT ROBERT LADD OR
-    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-    ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-    ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-    The views and conclusions contained in the software and documentation are those of the
-    authors and should not be interpreted as representing official policies, either expressed
-    or implied, of Scott Robert Ladd.
-
-    2) Closed-Source Proprietary License
-
-    If your project is a closed-source or proprietary project, the Simplified BSD License may
-    not be appropriate or desirable. In such cases, contact the Itzam copyright holder to
-    arrange your purchase of an appropriate license.
-
-    The author can be contacted at:
-
-          scott.ladd@coyotegulch.com
-          scott.ladd@gmail.com
-          http:www.coyotegulch.com
-*/
-
-/******************************************************************************
- * Project         Persistency
- * (c) copyright   2012
- * Company         XS Embedded GmbH
- *****************************************************************************/
-/******************************************************************************
-Small changes to use in persistence
-******************************************************************************/
- /**
- * @file           persistence_client_itzam_errors.c
- * @ingroup        Persistence client library
- * @author         Ingo Huerner
- * @brief          Itzam database error definnitions
- * @see
- */
-
-#include "persistence_client_library_itzam_errors.h"
-#include "../include_protected/persistence_client_library_data_organization.h"
-
-
-const char * ERROR_STRINGS [] =
-{
-    "invalid datafile signature",
-    "invalid version",
-    "can not open 64-bit datafile on 32-bit operating system",
-    "write failed",
-    "open failed",
-    "read failed",
-    "close failed",
-    "seek failed",
-    "tell failed",
-    "duplicate remove",
-    "flush failed",
-    "rewrite record too small",
-    "page not found",
-    "lost key",
-    "key not written",
-    "key seek failed",
-    "unable to remove key record",
-    "record seek failed",
-    "unable to remove data record",
-    "list of deleted records could not be read",
-    "list of deleted records could not be written",
-    "iterator record count differs from database internal count",
-    "rewrite over deleted record",
-    "invalid column index",
-    "invalid row index",
-    "invalid hash value",
-    "memory allocation failed",
-    "attempt reading deleted record",
-    "invalid record signature found",
-    "invalid file locking mode",
-    "unable to lock datafile",
-    "unable to unlock datafile",
-    "size mismatch when reading record",
-    "attempt to start new transaction while one is already active",
-    "no transaction active",
-    "attempt to free a B-tree cursor when cursors were active",
-    "invalid datafile object",
-    "size_t is incompatible with Itzam",
-    "could not create datafile",
-    "global shared memory requires Administrator or user with SeCreateGlobalPrivilege",
-    "cannot create global shared memory",
-    "another process or thread has already created shared objects for this datafile",
-    "invalid operation for read only file"
-};
-
-const char * STATE_MESSAGES [] =
-{
-    "okay",
-    "operation failed",
-    "version mismatch in files",
-    "iterator at end",
-    "iterator at beginning",
-    "key not found",
-    "duplicate key",
-    "exceeded maximum file size on 32-bit system",
-    "unable to write data record for index",
-    "sizeof(size_t) smaller than required for file references; possibly 64-bit DB on 32-bit platform",
-    "invalid operation for read only file"
-};
-
-
-void error_handler(const char * function_name, itzam_error error)
-{
-   DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("Itzam error in: "), DLT_STRING(function_name), DLT_STRING(ERROR_STRINGS[error]));
-}
diff --git a/src/persistence_client_library_itzam_errors.h b/src/persistence_client_library_itzam_errors.h
deleted file mode 100644 (file)
index 7324ea6..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef PERSISTENCE_CLIENT_ITZAM_ERRORS_H
-#define PERSISTENCE_CLIENT_ITZAM_ERRORS_H
-
-/*
-    Itzam/C (version 6.0) is an embedded database engine written in Standard C.
-
-    Copyright 2011 Scott Robert Ladd. All rights reserved.
-
-    Older versions of Itzam/C are:
-        Copyright 2002, 2004, 2006, 2008 Scott Robert Ladd. All rights reserved.
-
-    Ancestral code, from Java and C++ books by the author, is:
-        Copyright 1992, 1994, 1996, 2001 Scott Robert Ladd.  All rights reserved.
-
-    Itzam/C is user-supported open source software. It's continued development is dependent on
-    financial support from the community. You can provide funding by visiting the Itzam/C
-    website at:
-
-        http://www.coyotegulch.com
-
-    You may license Itzam/C in one of two fashions:
-
-    1) Simplified BSD License (FreeBSD License)
-
-    Redistribution and use in source and binary forms, with or without modification, are
-    permitted provided that the following conditions are met:
-
-    1.  Redistributions of source code must retain the above copyright notice, this list of
-        conditions and the following disclaimer.
-
-    2.  Redistributions in binary form must reproduce the above copyright notice, this list
-        of conditions and the following disclaimer in the documentation and/or other materials
-        provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY SCOTT ROBERT LADD ``AS IS'' AND ANY EXPRESS OR IMPLIED
-    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-    FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SCOTT ROBERT LADD OR
-    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-    ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-    ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-    The views and conclusions contained in the software and documentation are those of the
-    authors and should not be interpreted as representing official policies, either expressed
-    or implied, of Scott Robert Ladd.
-
-    2) Closed-Source Proprietary License
-
-    If your project is a closed-source or proprietary project, the Simplified BSD License may
-    not be appropriate or desirable. In such cases, contact the Itzam copyright holder to
-    arrange your purchase of an appropriate license.
-
-    The author can be contacted at:
-
-          scott.ladd@coyotegulch.com
-          scott.ladd@gmail.com
-          http:www.coyotegulch.com
-*/
-
-/******************************************************************************
- * Project         Persistency
- * (c) copyright   2012
- * Company         XS Embedded GmbH
- *****************************************************************************/
-/******************************************************************************
-Small changes to use in persistence
-******************************************************************************/
- /**
- * @file           persistence_client_itzam_errors.h
- * @ingroup        Persistence client library
- * @author         Ingo Huerner
- * @brief          Itzam database error definnitions
- * @see
- */
-
-#include <itzam.h>
-
-/// error string messages definition
-extern const char * ERROR_STRINGS [];
-
-/// error state messages definition
-extern const char * STATE_MESSAGES [];
-
-/// error handler
-void error_handler(const char * function_name, itzam_error error);
-
-
-#endif /* PERSISTENCE_CLIENT_ITZAM_ERRORS_H */
index 015f9e2..0d7c0ee 100644 (file)
  */
 
 #include "persistence_client_library_key.h"
-
-#include "../include_protected/persistence_client_library_db_access.h"
-#include "../include_protected/persistence_client_library_rc_table.h"
-#include "../include_protected/crc32.h"
-
 #include "persistence_client_library_handle.h"
 #include "persistence_client_library_pas_interface.h"
-#include "persistence_client_library_prct_access.h"
 #include "persistence_client_library_custom_loader.h"
+#include "persistence_client_library_prct_access.h"
+#include "persistence_client_library_db_access.h"
+#include "crc32.h"
+
+#include <persComRct.h>
+
 
 
 // function declaration
@@ -90,18 +90,18 @@ int pclKeyHandleOpen(unsigned int ldbid, const char* resource_id, unsigned int u
                strncpy(gKeyHandleArray[handle].dbKey,  dbKey,  DbKeyMaxLen);
                strncpy(gKeyHandleArray[handle].resourceID,  resource_id,  DbResIDMaxLen);
                gKeyHandleArray[handle].dbPath[DbPathMaxLen-1] = '\0'; // Ensures 0-Termination
-               gKeyHandleArray[handle].dbKey[ DbPathMaxLen-1] = '\0'; // Ensures 0-Termination
+               gKeyHandleArray[handle].dbKey[ DbKeyMaxLen-1] = '\0'; // Ensures 0-Termination
                gKeyHandleArray[handle].info = dbContext;
             }
             else
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyHandleOpen: error - handleId out of bounds:"), DLT_INT(handle));
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyHandleOpen: error - handleId out of bounds:"), DLT_INT(handle));
             }
          }
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyHandleOpen: error - no database context or resource is not a key "));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyHandleOpen: error - no database context or resource is not a key "));
       }
    }
 
@@ -184,7 +184,7 @@ int pclKeyHandleGetSize(int key_handle)
          }
          else
          {
-            size = pers_db_get_key_size(gKeyHandleArray[key_handle].dbPath, gKeyHandleArray[key_handle].dbKey,
+            size = persistence_get_data_size(gKeyHandleArray[key_handle].dbPath, gKeyHandleArray[key_handle].dbKey,
                                              &gKeyHandleArray[key_handle].info);
          }
       }
@@ -225,7 +225,7 @@ int pclKeyHandleReadData(int key_handle, unsigned char* buffer, int buffer_size)
          }
          else
          {
-            size = pers_db_read_key(gKeyHandleArray[key_handle].dbPath, gKeyHandleArray[key_handle].dbKey,
+                size = persistence_get_data(gKeyHandleArray[key_handle].dbPath, gKeyHandleArray[key_handle].dbKey,
                                         &gKeyHandleArray[key_handle].info, buffer, buffer_size);
          }
       }
@@ -315,7 +315,7 @@ int pclKeyHandleWriteData(int key_handle, unsigned char* buffer, int buffer_size
 
                            if(rval <= 0)
                            {
-                              DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyHandleWriteData: error - failed to send notification"));
+                              DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyHandleWriteData: error - failed to send notification"));
                               size = rval;
                            }
                         }
@@ -327,7 +327,7 @@ int pclKeyHandleWriteData(int key_handle, unsigned char* buffer, int buffer_size
                   }
                   else
                   {
-                     size = pers_db_write_key(gKeyHandleArray[key_handle].dbPath, gKeyHandleArray[key_handle].dbKey,
+                     size = persistence_set_data(gKeyHandleArray[key_handle].dbPath, gKeyHandleArray[key_handle].dbKey,
                                               &gKeyHandleArray[key_handle].info, buffer, buffer_size);
                   }
                }
@@ -344,7 +344,7 @@ int pclKeyHandleWriteData(int key_handle, unsigned char* buffer, int buffer_size
          }
          else
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyHandleWriteData: error - buffer_size to big, limit is [bytes]:"), DLT_INT(gMaxKeyValDataSize));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyHandleWriteData: error - buffer_size to big, limit is [bytes]:"), DLT_INT(gMaxKeyValDataSize));
             size = EPERS_MAX_BUFF_SIZE;
          }
       }
@@ -394,7 +394,7 @@ int pclKeyDelete(unsigned int ldbid, const char* resource_id, unsigned int user_
            if(   dbContext.configKey.storage < PersistenceStorage_LastEntry
               && dbContext.configKey.storage >= PersistenceStorage_local)   // check if store policy is valid
            {
-              rval = pers_db_delete_key(dbPath, dbKey, &dbContext);
+                  rval = persistence_delete_data(dbPath, dbKey, &dbContext);
            }
            else
            {
@@ -439,7 +439,7 @@ int pclKeyGetSize(unsigned int ldbid, const char* resource_id, unsigned int user
          if(   dbContext.configKey.storage < PersistenceStorage_LastEntry
             && dbContext.configKey.storage >= PersistenceStorage_local)   // check if store policy is valid
          {
-            data_size = pers_db_get_key_size(dbPath, dbKey, &dbContext);
+            data_size = persistence_get_data_size(dbPath, dbKey, &dbContext);
          }
          else
          {
@@ -487,7 +487,7 @@ int pclKeyReadData(unsigned int ldbid, const char* resource_id, unsigned int use
             if(   dbContext.configKey.storage <  PersistenceStorage_LastEntry
                && dbContext.configKey.storage >= PersistenceStorage_local)   // check if store policy is valid
             {
-                  data_size = pers_db_read_key(dbPath, dbKey, &dbContext, buffer, buffer_size);
+                  data_size = persistence_get_data(dbPath, dbKey, &dbContext, buffer, buffer_size);
             }
             else
             {
@@ -496,7 +496,7 @@ int pclKeyReadData(unsigned int ldbid, const char* resource_id, unsigned int use
          }
          else
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyReadData - error - no database context or resource is not a key"));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyReadData - error - no database context or resource is not a key"));
          }
       }
       else
@@ -548,7 +548,7 @@ int pclKeyWriteData(unsigned int ldbid, const char* resource_id, unsigned int us
                   if(   dbContext.configKey.storage <  PersistenceStorage_LastEntry
                      && dbContext.configKey.storage >= PersistenceStorage_local)   // check if store policy is valid
                   {
-                     data_size = pers_db_write_key(dbPath, dbKey, &dbContext, buffer, buffer_size);
+                     data_size = persistence_set_data(dbPath, dbKey, &dbContext, buffer, buffer_size);
                   }
                   else
                   {
@@ -562,13 +562,13 @@ int pclKeyWriteData(unsigned int ldbid, const char* resource_id, unsigned int us
             }
             else
             {
-               DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyWriteData - error - no database context or resource is not a key"));
+               DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyWriteData - error - no database context or resource is not a key"));
             }
          }
          else
          {
             data_size = EPERS_BUFLIMIT;
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyWriteData: error - buffer_size to big, limit is [bytes]:"), DLT_INT(gMaxKeyValDataSize));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyWriteData: error - buffer_size to big, limit is [bytes]:"), DLT_INT(gMaxKeyValDataSize));
          }
       }
       else
@@ -576,7 +576,6 @@ int pclKeyWriteData(unsigned int ldbid, const char* resource_id, unsigned int us
          data_size = EPERS_LOCKFS;
       }
    }
-
    return data_size;
 }
 
@@ -631,7 +630,7 @@ int regNotifyOnChange(unsigned int ldbid, const char* resource_id, unsigned int
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyRegisterNotifyOnChange: error - resource is not a shared resource or resource is not a key"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("pclKeyRegisterNotifyOnChange: error - resource is not a shared resource or resource is not a key"));
          rval = EPERS_NOTIFY_NOT_ALLOWED;
       }
    }
index 83deac6..fedccf1 100644 (file)
 
 #include "persistence_client_library_lc_interface.h"
 
-#include "../include_protected/persistence_client_library_data_organization.h"
-#include "../include_protected/persistence_client_library_db_access.h"
+#include "persistence_client_library_data_organization.h"
+#include "persistence_client_library_db_access.h"
 
 #include "persistence_client_library_handle.h"
 #include "persistence_client_library_pas_interface.h"
 #include "persistence_client_library_dbus_service.h"
 #include "persistence_client_library_custom_loader.h"
 #include "persistence_client_library_prct_access.h"
-#include "persistence_client_library_itzam_errors.h"
+
 
 #include <errno.h>
 #include <stdio.h>
@@ -46,7 +46,7 @@ int check_lc_request(int request, int requestID)
       {
          if(-1 == deliverToMainloop_NM(CMD_LC_PREPARE_SHUTDOWN, request, requestID) )
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("check_lc_request => failed to write to pipe"), DLT_INT(errno));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("check_lc_request => failed to write to pipe"), DLT_INT(errno));
             rval = NsmErrorStatus_Fail;
          }
          else
@@ -57,7 +57,7 @@ int check_lc_request(int request, int requestID)
       }
       default:
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("check_lc_request => Unknown lifecycle message"), DLT_INT(request));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("check_lc_request => Unknown lifecycle message"), DLT_INT(request));
          break;
       }
    }
@@ -84,12 +84,12 @@ int msg_lifecycleRequest(DBusConnection *connection, DBusMessage *message)
 
       if (reply == 0)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
       }
 
       if (!dbus_connection_send(connection, reply, 0))
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
       }
 
       dbus_message_unref(reply);
@@ -103,17 +103,17 @@ int msg_lifecycleRequest(DBusConnection *connection, DBusMessage *message)
 
    if (reply == 0)
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
    }
 
    if (!dbus_message_append_args(reply, DBUS_TYPE_INT32, &msgReturn, DBUS_TYPE_INVALID))
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
    }
 
    if (!dbus_connection_send(connection, reply, 0))
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_lifecycleRequest => DBus No memory"));
    }
 
    dbus_connection_flush(connection);
@@ -128,6 +128,8 @@ DBusHandlerResult checkLifecycleMsg(DBusConnection * connection, DBusMessage * m
 {
    DBusHandlerResult result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 
+   (void)user_data;
+
    if((0==strncmp("org.genivi.NodeStateManager.LifeCycleConsumer", dbus_message_get_interface(message), 46)))
    {
       if((0==strncmp("LifecycleRequest", dbus_message_get_member(message), 16)))
@@ -136,7 +138,7 @@ DBusHandlerResult checkLifecycleMsg(DBusConnection * connection, DBusMessage * m
       }
       else
       {
-          DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("checkLifecycleMsg -> unknown message "), DLT_STRING(dbus_message_get_interface(message)));
+          DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("checkLifecycleMsg -> unknown message "), DLT_STRING(dbus_message_get_interface(message)));
       }
    }
    return result;
@@ -156,9 +158,3 @@ int unregister_lifecycle(int shutdownMode)
    return deliverToMainloop(CMD_SEND_LC_REGISTER, 0, shutdownMode);
 }
 
-/*
-int send_prepare_shutdown_complete(int requestId, int status)
-{
-   return deliverToMainloop_NM(CMD_SEND_LC_REQUEST, status, requestId);
-}
-*/
index 1ca9a2b..3e60228 100644 (file)
 #include "persistence_client_library_pas_interface.h"
 #include "persistence_client_library_dbus_service.h"
 
-#include "../include_protected/persistence_client_library_data_organization.h"
+#include "persistence_client_library_data_organization.h"
 
 #include <errno.h>
 #include <unistd.h>
+#include <string.h>
 
 /// flag if access is locked
 static int gLockAccess = 0;
@@ -31,6 +32,7 @@ static int gLockAccess = 0;
 
 int pers_data_sync(void)
 {
+   DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("PCL: pers_data_sync()"));
    sync();
    return 1;
 }
@@ -58,9 +60,10 @@ int check_pas_request(unsigned int request, unsigned int requestID)
    {
       case (PasMsg_Block|PasMsg_WriteBack):
       {
+         DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("PCL: check_pas_request; case PasMsg_Block o. PasMsg_WriteBack"));
          if(-1 == deliverToMainloop_NM(CMD_PAS_BLOCK_AND_WRITE_BACK, request, requestID))
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("write failed w/ errno "), DLT_INT(errno), DLT_STRING(strerror(errno)));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("write failed w/ errno "), DLT_INT(errno), DLT_STRING(strerror(errno)));
             rval = PasErrorStatus_FAIL;
          }
          else
@@ -71,6 +74,7 @@ int check_pas_request(unsigned int request, unsigned int requestID)
       }
       case PasMsg_Unblock:
       {
+         DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("PCL: check_pas_request; case PasMsg_Unblock"));
          pers_unlock_access();
          rval = PasErrorStatus_OK;
          break;
@@ -106,12 +110,12 @@ DBusHandlerResult msg_persAdminRequest(DBusConnection *connection, DBusMessage *
 
       if(reply == 0)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
       }
 
       if (!dbus_connection_send(connection, reply, 0))
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
       }
 
       dbus_message_unref(reply);
@@ -125,17 +129,17 @@ DBusHandlerResult msg_persAdminRequest(DBusConnection *connection, DBusMessage *
 
    if (reply == 0)
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
    }
 
    if (!dbus_message_append_args(reply, DBUS_TYPE_INT32, &errorReturn, DBUS_TYPE_INVALID))
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
    }
 
    if (!dbus_connection_send(connection, reply, 0))
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("msg_persAdminRequest => DBus No memory"));
    }
 
    dbus_connection_flush(connection);
@@ -161,12 +165,12 @@ int signal_persModeChange(DBusConnection *connection, DBusMessage *message)
 
       if(reply == 0)
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
       }
 
       if (!dbus_connection_send(connection, reply, 0))
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
       }
 
       dbus_message_unref(reply);
@@ -178,17 +182,17 @@ int signal_persModeChange(DBusConnection *connection, DBusMessage *message)
 
    if (reply == 0)
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
    }
 
    if (!dbus_message_append_args(reply, DBUS_TYPE_INT32, &errorCode, DBUS_TYPE_INVALID))
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
    }
 
    if (!dbus_connection_send(connection, reply, 0))
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("signal_persModeChange => DBus No memory"));
    }
 
    dbus_connection_flush(connection);
@@ -202,6 +206,8 @@ DBusHandlerResult checkPersAdminMsg(DBusConnection * connection, DBusMessage * m
 {
    DBusHandlerResult result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 
+   (void)user_data;
+
    if((0==strcmp("org.genivi.persistence.adminconsumer", dbus_message_get_interface(message))))
    {
       if((0==strcmp("PersistenceAdminRequest", dbus_message_get_member(message))))
@@ -210,12 +216,12 @@ DBusHandlerResult checkPersAdminMsg(DBusConnection * connection, DBusMessage * m
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("checkPersAdminMsg => unknown message"), DLT_STRING(dbus_message_get_member(message)));
+         DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("checkPersAdminMsg => unknown message"), DLT_STRING(dbus_message_get_member(message)));
       }
    }
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("checkPersAdminMsg => unknown message"), DLT_STRING(dbus_message_get_interface(message)));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("checkPersAdminMsg => unknown message"), DLT_STRING(dbus_message_get_interface(message)));
    }
    return result;
 }
@@ -229,7 +235,7 @@ int register_pers_admin_service(void)
 
    if(-1 == deliverToMainloop(CMD_SEND_PAS_REGISTER, 1,  (PasMsg_Block | PasMsg_WriteBack | PasMsg_Unblock)))
    {
-    DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("register_pers_admin_service => failed to write to pipe"), DLT_INT(errno));
+    DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("register_pers_admin_service => failed to write to pipe"), DLT_INT(errno));
     rval = -1;
    }
    else
@@ -248,7 +254,7 @@ int unregister_pers_admin_service(void)
 
    if(-1 == deliverToMainloop(CMD_SEND_PAS_REGISTER, 0,  (PasMsg_Block | PasMsg_WriteBack | PasMsg_Unblock)))
    {
-     DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("unregister_pers_admin_service => failed to write to pipe"), DLT_INT(errno));
+     DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("unregister_pers_admin_service => failed to write to pipe"), DLT_INT(errno));
      rval = -1;
    }
    else
@@ -259,3 +265,4 @@ int unregister_pers_admin_service(void)
    return rval;
 }
 
+
index d1158ca..5fffc3c 100644 (file)
  */
 
 
+
 #include "persistence_client_library_prct_access.h"
-#include "persistence_client_library_itzam_errors.h"
-#include "../include_protected/persistence_client_library_db_access.h"
+#include "persistence_client_library_db_access.h"
 #include <stdlib.h>
+#include <string.h>
 
+#include <persComRct.h>
+#include <persComDbAccess.h>
+#include <persComErrors.h>
 
 
 /// pointer to resource table database
-itzam_btree gResource_table[PrctDbTableSize] = {{0}};
+int gResource_table[PrctDbTableSize] = {-1};
 /// array to hold the information of database is already open
 int gResourceOpen[PrctDbTableSize] = {0};
 
 
+/// persistence resource config table type definition
+typedef enum _PersistenceRCT_e
+{
+   PersistenceRCT_local         = 0,
+   PersistenceRCT_shared_public = 1,
+   PersistenceRCT_shared_group  = 2,
+
+   PersistenceRCT_LastEntry                // last Entry
+
+} PersistenceRCT_e;
+
+
+
 PersistenceRCT_e get_table_id(int ldbid, int* groupId)
 {
    PersistenceRCT_e rctType = PersistenceRCT_LastEntry;
@@ -55,32 +72,27 @@ PersistenceRCT_e get_table_id(int ldbid, int* groupId)
    {
       // L O C A L   database
       *groupId = 0;      // no group ID for local data
-      rctType = PersistenceStorage_local;   // we have a local database
+      rctType = PersistenceRCT_local;   // we have a local database
    }
    return rctType;
 }
 
 
-itzam_btree* get_resource_cfg_table_by_idx(int i)
+int get_resource_cfg_table_by_idx(int i)
 {
-   return &gResource_table[i];
+   return gResource_table[i];
 }
 
-int get_resource_cfg_table_status(int i)
-{
-   return gResourceOpen[i];
-}
 
 void invalidate_resource_cfg_table(int i)
 {
-   gResourceOpen[i] = 0;
+   gResource_table[i] = -1;
 }
 
 // status: OK
-itzam_btree* get_resource_cfg_table(PersistenceRCT_e rct, int group)
+int get_resource_cfg_table(PersistenceRCT_e rct, int group)
 {
    int arrayIdx = 0;
-   itzam_btree* tree = NULL;
 
    // create array index: index is a combination of resource config table type and group
    arrayIdx = rct + group;
@@ -89,7 +101,6 @@ itzam_btree* get_resource_cfg_table(PersistenceRCT_e rct, int group)
    {
       if(gResourceOpen[arrayIdx] == 0)   // check if database is already open
       {
-         itzam_state  state;
          char filename[DbPathMaxLen] = {0};
 
          switch(rct)    // create db name
@@ -104,30 +115,24 @@ itzam_btree* get_resource_cfg_table(PersistenceRCT_e rct, int group)
             snprintf(filename, DbPathMaxLen, gSharedWtPathKey, gAppId, group, gResTableCfg);
             break;
          default:
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("get_resource_cfg_table - error: no valid PersistenceRCT_e"));
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("get_resource_cfg_table - error: no valid PersistenceRCT_e"));
             break;
          }
 
-         state = itzam_btree_open(&gResource_table[arrayIdx], filename, itzam_comparator_string, error_handler, 0 , 0);
-         if(state != ITZAM_OKAY)
+
+         gResource_table[arrayIdx] = persComRctOpen(filename, 0x00) ;
+         if(gResource_table[arrayIdx] < 0)
          {
-            DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("get_resource_cfg_table => itzam_btree_open => Itzam problem"), DLT_STRING(STATE_MESSAGES[state]) );
-            tree = NULL;
+            DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("get_resource_cfg_table => RCT problem"));
          }
          else
          {
-            gResourceOpen[arrayIdx] = 1;  // remember the index has an DB entry
-            tree = &gResource_table[arrayIdx];
+             gResourceOpen[arrayIdx] = 1 ;
          }
       }
-      else
-      {
-         tree = &gResource_table[arrayIdx];
-      }
-
    }
 
-   return tree;
+   return gResource_table[arrayIdx];
 }
 
 
@@ -141,28 +146,20 @@ int get_db_context(PersistenceInfo_s* dbContext, const char* resource_id, unsign
    rct = get_table_id(dbContext->context.ldbid, &groupId);
 
    // get resource configuration table
-   itzam_btree* resource_table = get_resource_cfg_table(rct, groupId);
+   int handleRCT = get_resource_cfg_table(rct, groupId);
 
-   if(resource_table != NULL)
+   if(handleRCT >= 0)
    {
-      PersistenceRctEntry_s search;
+      PersistenceConfigurationKey_s sRctEntry ;
+
       // check if resouce id is in write through table
-      if(itzam_true == itzam_btree_find(resource_table, resource_id, &search))
+      int iErrCode = persComRctRead(handleRCT, resource_id, &sRctEntry) ;
+      
+      if(sizeof(PersistenceConfigurationKey_s) == iErrCode)
       {
-         memset(dbContext->configKey.reponsible,  0, MaxConfKeyLengthResp);
-         memset(dbContext->configKey.custom_name, 0, MaxConfKeyLengthCusName);
-         memset(dbContext->configKey.customID,    0,  MaxRctLengthCustom_ID);
-
-         dbContext->configKey.policy      = search.data.policy;
-         dbContext->configKey.storage     = search.data.storage;
-         dbContext->configKey.permission  = search.data.permission;
-         dbContext->configKey.max_size    = search.data.max_size;
-         dbContext->configKey.type        = search.data.type;
-         memcpy(dbContext->configKey.reponsible, search.data.reponsible, MaxConfKeyLengthResp);
-         memcpy(dbContext->configKey.custom_name, search.data.custom_name, MaxConfKeyLengthCusName);
-         memcpy(dbContext->configKey.customID, search.data.customID, MaxRctLengthCustom_ID);
-
-         if(dbContext->configKey.storage != PersistenceStorage_custom )
+         //printf("get_db_context ==> data: %s\n", search.data);
+          memcpy(&dbContext->configKey, &sRctEntry, sizeof(dbContext->configKey)) ;
+         if(sRctEntry.storage != PersistenceStorage_custom )
          {
             rval = get_db_path_and_key(dbContext, resource_id, dbKey, dbPath);
          }
@@ -170,18 +167,21 @@ int get_db_context(PersistenceInfo_s* dbContext, const char* resource_id, unsign
          {
             // if customer storage, we use the custom name as dbPath
             strncpy(dbPath, dbContext->configKey.custom_name, strlen(dbContext->configKey.custom_name));
+
+            // and resource_id as dbKey
+            strncpy(dbKey, resource_id, strlen(resource_id));
          }
          resourceFound = 1;
       }
       else
       {
-         DLT_LOG(gDLTContext, DLT_LOG_WARN, DLT_STRING("get_db_context => itzam_btree_open => resource_table: no value for key:"), DLT_STRING(resource_id) );
+         DLT_LOG(gPclDLTContext, DLT_LOG_WARN, DLT_STRING("get_db_context => persComRctRead => resource_table: no value for key:"), DLT_STRING(resource_id) );
          rval = EPERS_NOKEYDATA;
       }
    }  // resource table
    else
    {
-      DLT_LOG(gDLTContext, DLT_LOG_ERROR, DLT_STRING("get_db_context =>error resource table"));
+      DLT_LOG(gPclDLTContext, DLT_LOG_ERROR, DLT_STRING("get_db_context =>error resource table"));
       rval = EPERS_NOPRCTABLE;
    }
 
@@ -207,7 +207,7 @@ int get_db_context(PersistenceInfo_s* dbContext, const char* resource_id, unsign
       memcpy(dbContext->configKey.reponsible, "default", strlen("default"));
       memcpy(dbContext->configKey.custom_name, "default", strlen("default"));
 
-      DLT_LOG(gDLTContext, DLT_LOG_INFO, DLT_STRING("get_db_context => create resource not in PRCT => key:"), DLT_STRING(resource_id) );
+      DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("get_db_context => create resource not in PRCT => key:"), DLT_STRING(resource_id) );
 
       // send create notification
       rval = pers_send_Notification_Signal(dbKey, &dbContext->context, pclNotifyStatus_created);
@@ -292,7 +292,7 @@ int get_db_path_and_key(PersistenceInfo_s* dbContext, const char* resource_id, c
          if(PersistencePolicy_wc == dbContext->configKey.policy)
          {
             if(dbContext->configKey.type == PersistenceResourceType_key)
-               snprintf(dbPath, DbPathMaxLen, gSharedCachePath, gAppId, dbContext->context.ldbid);
+               snprintf(dbPath, DbPathMaxLen, gSharedCachePath, gAppId, dbContext->context.ldbid, "");
             else
                snprintf(dbPath, DbPathMaxLen, gSharedCachePathKey, gAppId, dbContext->context.ldbid, dbKey);
          }
@@ -313,14 +313,14 @@ int get_db_path_and_key(PersistenceInfo_s* dbContext, const char* resource_id, c
          if(PersistencePolicy_wc == dbContext->configKey.policy)
          {
             if(dbContext->configKey.type == PersistenceResourceType_key)
-               snprintf(dbPath, DbPathMaxLen, gSharedPublicCachePath, gAppId);
+               snprintf(dbPath, DbPathMaxLen, gSharedPublicCachePath, gAppId, "");
             else
                snprintf(dbPath, DbPathMaxLen, gSharedPublicCachePathKey, gAppId, dbKey);
          }
          else if(PersistencePolicy_wt == dbContext->configKey.policy)
          {
             if(dbContext->configKey.type == PersistenceResourceType_key)
-               snprintf(dbPath, DbPathMaxLen, gSharedPublicWtPath, gAppId);
+               snprintf(dbPath, DbPathMaxLen, gSharedPublicWtPath, gAppId, "");
             else
                snprintf(dbPath, DbPathMaxLen, gSharedPublicWtPathKey, gAppId, dbKey);
          }
@@ -331,20 +331,19 @@ int get_db_path_and_key(PersistenceInfo_s* dbContext, const char* resource_id, c
    else
    {
       // L O C A L   database
-
       if(PersistencePolicy_wc == dbContext->configKey.policy)
       {
          if(dbContext->configKey.type == PersistenceResourceType_key)
-            snprintf(dbPath, DbPathMaxLen, gLocalCachePath, gAppId);
+            snprintf(dbPath, DbPathMaxLen, gLocalCachePath, gAppId, "");
          else
             snprintf(dbPath, DbPathMaxLen, gLocalCachePathKey, gAppId, dbKey);
       }
       else if(PersistencePolicy_wt == dbContext->configKey.policy)
       {
          if(dbContext->configKey.type == PersistenceResourceType_key)
-            snprintf(dbPath, DbPathMaxLen, gLocalWtPath, gAppId);
+            snprintf(dbPath, DbPathMaxLen-1, gLocalWtPath, gAppId, "");
          else
-            snprintf(dbPath, DbPathMaxLen, gLocalWtPathKey, gAppId, dbKey);
+            snprintf(dbPath, DbPathMaxLen-1, gLocalWtPathKey, gAppId, dbKey);
       }
 
       storePolicy = PersistenceStorage_local;   // we have a local database
@@ -352,6 +351,7 @@ int get_db_path_and_key(PersistenceInfo_s* dbContext, const char* resource_id, c
 
    //printf("get_db_path_and_key - dbKey  : [key ]: %s \n",  dbKey);
    //printf("get_db_path_and_key - dbPath : [path]: %s\n", dbPath);
+
    return storePolicy;
 }
 
index a14ebdc..0bba971 100644 (file)
  * @see
  */
 
-#include "../include_protected/persistence_client_library_data_organization.h"
-#include "../include_protected/persistence_client_library_rc_table.h"
+#include "persistence_client_library_data_organization.h"
 
-#include <itzam.h>
 
 /**
  * @brief Create database search key and database location path
@@ -44,7 +42,7 @@ int get_db_path_and_key(PersistenceInfo_s* dbContext, const char* resource_id, c
 
 
 /**
- * Create database search key and database location path
+ * @brief Create database search key and database location path
  *
  * @param dbContext the database context
  * @param resource_id the resource id
@@ -62,24 +60,16 @@ int get_db_context(PersistenceInfo_s* dbContext, const char* resource_id, unsign
 
 
 /**
- * @brief get the resource configuration table database by id
- *
- * @param i the index
+ * @brief get the resource configuration table gvbd database by id
  *
- * @return pointer to the database table or NULL if no valid database has been found
+ * @return Handle to the gvdb database table or negative value if no valid database has been found
  */
-itzam_btree* get_resource_cfg_table_by_idx(int i);
-
-
+int get_resource_cfg_table_by_idx(int i);
 
 /**
- * @brief get the resource configuration table status
- *
- * @param i the index
- *
- * @return status of database, 1 is db is opened and 0 is closed
+ * Global array for the storage of pointers to resource table databases
  */
-inline int get_resource_cfg_table_status(int i);
+extern int gResource_table[PrctDbTableSize];
 
 
 
@@ -88,7 +78,7 @@ inline int get_resource_cfg_table_status(int i);
  *
  * @param i the index
  */
-inline void invalidate_resource_cfg_table(int i);
+void invalidate_resource_cfg_table(int i);
 
 
 
index da7b652..6264d76 100644 (file)
@@ -24,7 +24,7 @@ persistence_client_library_benchmark_LDADD = $(DEPS_LIBS) \
 persistence_client_library_test_SOURCES = persistence_client_library_test.c
 persistence_client_library_test_LDADD = $(DEPS_LIBS) $(CHECK_LIBS) \
    $(top_srcdir)/src/libpersistence_client_library.la
-
+   
 persistence_admin_service_mockup_SOURCES = persistence_admin_service_mockup.c
 persistence_admin_service_mockup_LDADD = $(DEPS_LIBS) 
 
index 93e23cd..0a69c75 100644 (file)
Binary files a/test/data/Data.tar.gz and b/test/data/Data.tar.gz differ
index 4667d55..b1aa3b7 100644 (file)
@@ -10,7 +10,6 @@
 ******************************************************************************/
  /**
  * @file           persistence_client_library_test.c
- * @ingroup        Persistence client library test
  * @author         Ingo Huerner
  * @brief          Test of persistence client library
  * @see            
 #include "../include/persistence_client_library_file.h"
 #include "../include/persistence_client_library_key.h"
 #include "../include/persistence_client_library.h"
+#include "../include/persistence_client_library_error_def.h"
 
 
-// protected header, should be used only be persistence components
-// included here for testing purpose
-#include "../include_protected/persistence_client_library_db_access.h"
-
 
 #define BUF_SIZE     64
 #define NUM_OF_FILES 3
 #define READ_SIZE    1024
+#define MaxAppNameLen 256
 
 /// application id
 char gTheAppId[MaxAppNameLen] = {0};
@@ -117,6 +114,9 @@ START_TEST(test_GetData)
     *       ==> local USER value (user 3, seat 2)
     */
    ret = pclKeyReadData(0xFF, "status/open_document",      3, 2, buffer, READ_SIZE);
+   printf("Ist:  %s\n", buffer);
+   printf("Soll: %s\n", "WT_ /var/opt/user_manual_climateControl.pdf");
+
    x_fail_unless(strncmp((char*)buffer, "WT_ /var/opt/user_manual_climateControl.pdf", strlen((char*)buffer)) == 0, "Buffer not correctly read");
 
    memset(buffer, 0, READ_SIZE);
@@ -310,9 +310,11 @@ START_TEST(test_SetData)
     *       ==> local USER value (user 1, seat 2)
     * Resource ID: 69
     */
-
+   printf("function: %s ==> line: %d\n", __FUNCTION__, __LINE__);
    ret = pclKeyWriteData(0xFF, "69", 1, 2, (unsigned char*)sysTimeBuffer, strlen(sysTimeBuffer));
+   printf("function: %s ==> line: %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(ret == strlen(sysTimeBuffer), "Wrong write size");
+   printf("function: %s ==> line: %d\n", __FUNCTION__, __LINE__);
 #if 1
    snprintf(write1, 128, "%s %s", "/70",  sysTimeBuffer);
    /**
@@ -376,6 +378,8 @@ START_TEST(test_SetData)
    memset(buffer, 0, READ_SIZE);
 
    ret = pclKeyReadData(0xFF, "69", 1, 2, buffer, READ_SIZE);
+   printf("Verify ist  : %s \n", buffer);
+   printf("Verify soll : %s \n", sysTimeBuffer);
    x_fail_unless(strncmp((char*)buffer, sysTimeBuffer, strlen(sysTimeBuffer)) == 0, "Buffer not correctly read");
    x_fail_unless(ret == strlen(sysTimeBuffer), "Wrong read size");
 
@@ -482,6 +486,7 @@ START_TEST(test_GetDataSize)
     *       ==> shared user value accessible by A GROUP (user 2 and seat 1)
     */
    size = pclKeyGetSize(0x84, "links/last_link", 2, 1);
+   printf("=>=>=>=> soll: %d | ist: %d\n", strlen("CACHE_ /last_exit/queens"), size);
    x_fail_unless(size == strlen("CACHE_ /last_exit/queens"), "Invalid size");
 #endif
    pclDeinitLibrary();
@@ -595,37 +600,55 @@ START_TEST(test_DataFile)
    x_fail_unless(fd != -1, "Could not open file ==> /media/mediaDB.db");
 
    size = pclFileGetSize(fd);
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
+   printf("Soll: 68 | Ist: %d\n", size);
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(size == 68, "Wrong file size");
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
 
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    size = pclFileReadData(fd, buffer, READ_SIZE);
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(strncmp((char*)buffer, refBuffer, strlen(refBuffer)) == 0, "Buffer not correctly read => media/mediaDB.db");
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(size == (strlen(refBuffer)+1), "Wrong size returned");      // strlen + 1 ==> inlcude cr/lf
-
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
 
    ret = pclFileClose(fd);
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(ret == 0, "Failed to close file");
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
 
    // open ------------------------------------------------------------
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    fd = pclFileOpen(0xFF, "media/mediaDBWrite.db", 1, 1);
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(fd != -1, "Could not open file ==> /media/mediaDBWrite.db");
 
    size = pclFileWriteData(fd, writeBuffer, strlen(writeBuffer));
    x_fail_unless(size == strlen(writeBuffer), "Failed to write data");
-
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    ret = pclFileClose(fd);
+   printf("%s => %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(ret == 0, "Failed to close file");
 
-
+   printf("* * %s => %d\n", __FUNCTION__, __LINE__);
    // remove ----------------------------------------------------------
+   printf("* * %s => %d\n", __FUNCTION__, __LINE__);
    ret = pclFileRemove(0xFF, "media/mediaDBWrite.db", 1, 1);
+   printf("* * %s => %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(ret == 0, "File can't be removed ==> /media/mediaDBWrite.db");
+   printf("* * %s => %d\n", __FUNCTION__, __LINE__);
 
    fd = open("/Data/mnt-wt/lt-persistence_client_library_test/user/1/seat/1/media/mediaDBWrite.db",O_RDWR);
+   printf("* * %s => %d\n", __FUNCTION__, __LINE__);
    x_fail_unless(fd == -1, "Failed to remove file, file still exists");
+   printf("* * %s => %d\n", __FUNCTION__, __LINE__);
    close(fd);
-
+   printf("* * %s => %d\n", __FUNCTION__, __LINE__);
 
    // map file --------------------------------------------------------
+
    fd = pclFileOpen(0xFF, "media/mediaDB.db", 1, 1);
 
    size = pclFileGetSize(fd);
@@ -864,6 +887,7 @@ END_TEST
 
 
 
+#if 0
 /**
  * Test for  i n t e r n a l  structures.
  * Test the cursor functions.
@@ -936,6 +960,7 @@ START_TEST(test_Cursor)
    pclDeinitLibrary();
 }
 END_TEST
+#endif
 
 
 
@@ -1231,9 +1256,6 @@ static Suite * persistencyClientLib_suite()
    TCase * tc_persDataFileRecovery = tcase_create("DataFileRecovery");
    tcase_add_test(tc_persDataFileRecovery, test_DataFileRecovery);
 
-   TCase * tc_Cursor = tcase_create("Cursor");
-   tcase_add_test(tc_Cursor, test_Cursor);
-
    TCase * tc_Plugin = tcase_create("Plugin");
    tcase_add_test(tc_Plugin, test_Plugin);
 
@@ -1265,7 +1287,6 @@ static Suite * persistencyClientLib_suite()
    suite_add_tcase(s, tc_persDataHandleOpen);
    suite_add_tcase(s, tc_persDataFile);
    suite_add_tcase(s, tc_persDataFileRecovery);
-   suite_add_tcase(s, tc_Cursor);
    suite_add_tcase(s, tc_ReadDefault);
    suite_add_tcase(s, tc_ReadConfDefault);
    suite_add_tcase(s, tc_GetPath);
@@ -1274,6 +1295,7 @@ static Suite * persistencyClientLib_suite()
    suite_add_tcase(s, tc_FileOpenCreate);
 
    //suite_add_tcase(s, tc_Plugin); // activate only if the plugins are available
+
    return s;
 }
 
@@ -1292,7 +1314,7 @@ int main(int argc, char *argv[])
    gTheAppId[MaxAppNameLen-1] = '\0';
 
    /// debug log and trace (DLT) setup
-   DLT_REGISTER_APP("test","tests the persistence client library");
+   DLT_REGISTER_APP("PCLt","tests the persistence client library");
 
 #if 1
    Suite * s = persistencyClientLib_suite();