summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorihuerner <ihuerner@b9707d8c-442e-47db-affb-152dabb2260b>2012-12-05 14:23:11 +0000
committerihuerner <ihuerner@b9707d8c-442e-47db-affb-152dabb2260b>2012-12-05 14:23:11 +0000
commitb55c2f765365f3cbbe926d1f674e064c5ac400c6 (patch)
tree905576b86bdf087204ffcfeb254c3ecdf8aee151
parentba7a3f55a7297850a511581d1db67d8fbe0b8726 (diff)
downloadpersistence-client-library-b55c2f765365f3cbbe926d1f674e064c5ac400c6.tar.gz
New release 0.3.2, see ChangeLog for changes
-rw-r--r--ChangeLog6
-rw-r--r--include/persistence_client_library_error_def.h7
-rw-r--r--include_protected/crc32.h (renamed from src/crc32.h)10
-rw-r--r--include_protected/persistence_client_library.h (renamed from src/persistence_client_library.h)12
-rw-r--r--include_protected/persistence_client_library_data_access.h (renamed from src/persistence_client_library_data_access.h)7
-rw-r--r--src/crc32.c2
-rw-r--r--src/persistence_client_library.c6
-rw-r--r--src/persistence_client_library_access_helper.h2
-rw-r--r--src/persistence_client_library_custom_loader.c2
-rw-r--r--src/persistence_client_library_data_access.c2
-rw-r--r--src/persistence_client_library_dbus_service.c2
-rw-r--r--src/persistence_client_library_file.c5
-rw-r--r--src/persistence_client_library_handle.h2
-rw-r--r--src/persistence_client_library_key.c5
-rw-r--r--src/persistence_client_library_lc_interface.c19
-rw-r--r--src/persistence_client_library_pas_interface.c35
-rw-r--r--src/persistence_client_library_pas_interface.h2
-rw-r--r--test/persistence_client_library_test.c5
18 files changed, 85 insertions, 46 deletions
diff --git a/ChangeLog b/ChangeLog
index b830cbb..167f41a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
+Revision 0.3.2
+- Updated dbus interface (removed error code as paramaters; requestID passed by a message will now returned to "sender")
+- Moved headers used by other persistence components into include_protected folder
+
Revision 0.3.1
- Fixed a problem when accessing prct and key-value database
-- reverted chnage of datastructure mad in revision 0.2.4
+- reverted change of datastructure mad in revision 0.2.4
Revision 0.3.0
- Switched to the MPL v2 license
diff --git a/include/persistence_client_library_error_def.h b/include/persistence_client_library_error_def.h
index f3c4e0d..3cb5616 100644
--- a/include/persistence_client_library_error_def.h
+++ b/include/persistence_client_library_error_def.h
@@ -19,6 +19,10 @@
* @see
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
// common error, for this error errno will be set
#define EPERS_COMMON (-1)
/// file system is locked
@@ -88,5 +92,8 @@
*/
void* dbus_main_dispatching_loop(void* dataPtr);
+#ifdef __cplusplus
+}
+#endif
#endif /* PERSISTENCE_CLIENT_LIBRARY_ERROR_DEF_H */
diff --git a/src/crc32.h b/include_protected/crc32.h
index bf7e9c1..781e7eb 100644
--- a/src/crc32.h
+++ b/include_protected/crc32.h
@@ -21,10 +21,20 @@
* @see
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define PERSIST_CLIENT_LIBRARY_INTERFACE_VERSION (0x01000000U)
#include <string.h>
const unsigned int crc32(unsigned int crc, const unsigned char *buf, size_t theSize);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* CRC32_H */
diff --git a/src/persistence_client_library.h b/include_protected/persistence_client_library.h
index 3f19f6e..d34060e 100644
--- a/src/persistence_client_library.h
+++ b/include_protected/persistence_client_library.h
@@ -20,7 +20,13 @@
* @see
*/
-#include "persistence_client_library_lc_interface.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PERSIST_CLIENT_LIBRARY_INTERFACE_VERSION (0x01000000U)
+
#include "../include/persistence_client_library_error_def.h"
#include "crc32.h"
@@ -184,7 +190,9 @@ extern char gAppId[MaxAppNameLen];
/// max key value data size
extern int gMaxKeyValDataSize;
-
+#ifdef __cplusplus
+}
+#endif
#endif /* PERSISTENCY_CLIENT_LIBRARY_H */
diff --git a/src/persistence_client_library_data_access.h b/include_protected/persistence_client_library_data_access.h
index a7ea907..d0ec7df 100644
--- a/src/persistence_client_library_data_access.h
+++ b/include_protected/persistence_client_library_data_access.h
@@ -20,6 +20,10 @@
* @see
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define PERSIST_DATA_ACCESS_INTERFACE_VERSION (0x02100000U)
@@ -179,5 +183,8 @@ int persistence_db_cursor_get_data_size(unsigned int handlerDB) ;
*/
int persistence_db_cursor_destroy(unsigned int handlerDB) ;
+#ifdef __cplusplus
+}
+#endif
#endif /* PERSISTENCY_CLIENT_LIBRARY_DATA_ACCESS_H */
diff --git a/src/crc32.c b/src/crc32.c
index b951823..4283358 100644
--- a/src/crc32.c
+++ b/src/crc32.c
@@ -51,7 +51,7 @@
*/
-#include "crc32.h"
+#include "../include_protected/crc32.h"
enum crc32ConstantDefinition
diff --git a/src/persistence_client_library.c b/src/persistence_client_library.c
index 1226c89..4c1da76 100644
--- a/src/persistence_client_library.c
+++ b/src/persistence_client_library.c
@@ -18,12 +18,14 @@
*/
-#include "persistence_client_library.h"
+#include "../include_protected/persistence_client_library.h"
+
+#include "../include_protected/persistence_client_library_data_access.h"
+
#include "persistence_client_library_lc_interface.h"
#include "persistence_client_library_pas_interface.h"
#include "persistence_client_library_dbus_service.h"
#include "persistence_client_library_handle.h"
-#include "persistence_client_library_data_access.h"
#include "persistence_client_library_custom_loader.h"
#include "persistence_client_library_access_helper.h"
diff --git a/src/persistence_client_library_access_helper.h b/src/persistence_client_library_access_helper.h
index 9e03bfb..3da3459 100644
--- a/src/persistence_client_library_access_helper.h
+++ b/src/persistence_client_library_access_helper.h
@@ -19,7 +19,7 @@
* @see
*/
-#include "persistence_client_library.h"
+#include "../include_protected/persistence_client_library.h"
#include <itzam.h>
/**
diff --git a/src/persistence_client_library_custom_loader.c b/src/persistence_client_library_custom_loader.c
index 9cd2ed3..dea47ec 100644
--- a/src/persistence_client_library_custom_loader.c
+++ b/src/persistence_client_library_custom_loader.c
@@ -17,7 +17,7 @@
*/
#include "persistence_client_library_custom_loader.h"
-#include "persistence_client_library.h"
+#include "../include_protected/persistence_client_library.h"
#include <stdio.h>
#include <errno.h>
diff --git a/src/persistence_client_library_data_access.c b/src/persistence_client_library_data_access.c
index 2133e4e..8cb38c5 100644
--- a/src/persistence_client_library_data_access.c
+++ b/src/persistence_client_library_data_access.c
@@ -17,7 +17,7 @@
* @see
*/
-#include "persistence_client_library_data_access.h"
+#include "../include_protected/persistence_client_library_data_access.h"
#include "persistence_client_library_custom_loader.h"
#include "persistence_client_library_access_helper.h"
#include "persistence_client_library_itzam_errors.h"
diff --git a/src/persistence_client_library_dbus_service.c b/src/persistence_client_library_dbus_service.c
index 005964a..a598317 100644
--- a/src/persistence_client_library_dbus_service.c
+++ b/src/persistence_client_library_dbus_service.c
@@ -382,7 +382,7 @@ int mainLoop(DBusObjectPathVTable vtable, DBusObjectPathVTable vtable2,
switch (buf[0])
{
case CMD_PAS_BLOCK_AND_WRITE_BACK:
- process_block_and_write_data_back();
+ process_block_and_write_data_back(buf[1]);
break;
case CMD_LC_PREPARE_SHUTDOWN:
process_prepare_shutdown(buf[1]);
diff --git a/src/persistence_client_library_file.c b/src/persistence_client_library_file.c
index b8db05d..ea0c9c9 100644
--- a/src/persistence_client_library_file.c
+++ b/src/persistence_client_library_file.c
@@ -18,8 +18,9 @@
*/
#include "persistence_client_library_file.h"
-#include "persistence_client_library.h"
-#include "persistence_client_library_data_access.h"
+#include "../include_protected/persistence_client_library.h"
+#include "../include_protected/persistence_client_library_data_access.h"
+
#include "persistence_client_library_pas_interface.h"
#include "persistence_client_library_handle.h"
#include "persistence_client_library_access_helper.h"
diff --git a/src/persistence_client_library_handle.h b/src/persistence_client_library_handle.h
index 9f76d4f..4d1a234 100644
--- a/src/persistence_client_library_handle.h
+++ b/src/persistence_client_library_handle.h
@@ -20,7 +20,7 @@
* @see
*/
-#include "persistence_client_library.h"
+#include "../include_protected/persistence_client_library.h"
/// handle structure definition
typedef struct _PersistenceHandle_s
diff --git a/src/persistence_client_library_key.c b/src/persistence_client_library_key.c
index 9039b56..3772ea1 100644
--- a/src/persistence_client_library_key.c
+++ b/src/persistence_client_library_key.c
@@ -18,9 +18,10 @@
*/
#include "persistence_client_library_key.h"
-#include "persistence_client_library.h"
+
+#include "../include_protected/persistence_client_library_data_access.h"
+
#include "persistence_client_library_handle.h"
-#include "persistence_client_library_data_access.h"
#include "persistence_client_library_pas_interface.h"
#include "persistence_client_library_access_helper.h"
#include "persistence_client_library_custom_loader.h"
diff --git a/src/persistence_client_library_lc_interface.c b/src/persistence_client_library_lc_interface.c
index c7bb513..963132e 100644
--- a/src/persistence_client_library_lc_interface.c
+++ b/src/persistence_client_library_lc_interface.c
@@ -19,13 +19,14 @@
#include "persistence_client_library_lc_interface.h"
-#include "persistence_client_library.h"
+#include "../include_protected/persistence_client_library.h"
+#include "../include_protected/persistence_client_library_data_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_access_helper.h"
-#include "persistence_client_library_data_access.h"
#include "persistence_client_library_itzam_errors.h"
#include <errno.h>
@@ -36,7 +37,7 @@
static int gTimeoutMs = 500;
-int check_lc_request(int request)
+int check_lc_request(int request, int requestID)
{
int rval = 0;
@@ -45,7 +46,7 @@ int check_lc_request(int request)
case NsmShutdownNormal:
{
// add command and data to queue
- unsigned long cmd = ( (request << 8) | CMD_LC_PREPARE_SHUTDOWN);
+ unsigned long cmd = ( (requestID << 8) | CMD_LC_PREPARE_SHUTDOWN);
if(sizeof(int)!=write(gPipefds[1], &cmd, sizeof(unsigned long)))
{
@@ -72,7 +73,7 @@ int check_lc_request(int request)
int msg_lifecycleRequest(DBusConnection *connection, DBusMessage *message)
{
int request = 0,
- requestId = 0,
+ requestID = 0,
msgReturn = 0;
DBusMessage *reply;
@@ -80,7 +81,7 @@ int msg_lifecycleRequest(DBusConnection *connection, DBusMessage *message)
dbus_error_init (&error);
if (!dbus_message_get_args (message, &error, DBUS_TYPE_UINT32, &request,
- DBUS_TYPE_UINT32, &requestId,
+ DBUS_TYPE_UINT32, &requestID,
DBUS_TYPE_INVALID))
{
reply = dbus_message_new_error(message, error.name, error.message);
@@ -102,7 +103,7 @@ int msg_lifecycleRequest(DBusConnection *connection, DBusMessage *message)
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
- msgReturn = check_lc_request(request);
+ msgReturn = check_lc_request(request, requestID);
reply = dbus_message_new_method_return(message);
@@ -248,7 +249,7 @@ int send_lifecycle_request(const char* method, int requestId, int status)
int register_lifecycle()
{
- int shutdownMode = 88; // TODO send correct mode
+ int shutdownMode = 1; // TODO send correct mode
return send_lifecycle_register("RegisterShutdownClient", shutdownMode);
}
@@ -257,7 +258,7 @@ int register_lifecycle()
int unregister_lifecycle()
{
- int shutdownMode = 88; // TODO send correct mode
+ int shutdownMode = 1; // TODO send correct mode
return send_lifecycle_register("UnRegisterShutdownClient", shutdownMode);
}
diff --git a/src/persistence_client_library_pas_interface.c b/src/persistence_client_library_pas_interface.c
index 056b9a3..dd0ad7c 100644
--- a/src/persistence_client_library_pas_interface.c
+++ b/src/persistence_client_library_pas_interface.c
@@ -19,7 +19,8 @@
#include "persistence_client_library_pas_interface.h"
#include "persistence_client_library_dbus_service.h"
-#include "persistence_client_library.h"
+
+#include "../include_protected/persistence_client_library.h"
#include <errno.h>
#include <unistd.h>
@@ -60,9 +61,10 @@ int check_pas_request(unsigned int request, unsigned int requestID)
{
case (PasMsg_Block|PasMsg_WriteBack):
{
- // add command to queue
- static const int cmd = CMD_PAS_BLOCK_AND_WRITE_BACK;
- if(sizeof(int)!=write(gPipefds[1], &cmd, sizeof(int)))
+ // add command and data to queue
+ unsigned long cmd = ( (requestID << 8) | CMD_PAS_BLOCK_AND_WRITE_BACK);
+
+ if(sizeof(int)!=write(gPipefds[1], &cmd, sizeof(unsigned long)))
{
printf("write failed w/ errno %d\n", errno);
rval = PasErrorStatus_FAIL;
@@ -94,16 +96,16 @@ int check_pas_request(unsigned int request, unsigned int requestID)
DBusHandlerResult msg_persAdminRequest(DBusConnection *connection, DBusMessage *message)
{
- int request = 0, requestID = 0, errorCode = 0;
+ int request = 0, requestID = 0;
int errorReturn = 0;
DBusMessage *reply;
DBusError error;
dbus_error_init (&error);
+
if (!dbus_message_get_args (message, &error, DBUS_TYPE_INT32 , &request,
DBUS_TYPE_INT32 , &requestID,
- DBUS_TYPE_INT32 , &errorCode,
DBUS_TYPE_INVALID))
{
reply = dbus_message_new_error(message, error.name, error.message);
@@ -124,7 +126,6 @@ DBusHandlerResult msg_persAdminRequest(DBusConnection *connection, DBusMessage *
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
-
errorReturn = check_pas_request(request, requestID);
reply = dbus_message_new_method_return(message);
@@ -263,7 +264,7 @@ DBusHandlerResult checkPersAdminMsg(DBusConnection * connection, DBusMessage * m
int send_pas_register(const char* method, int notificationFlag)
{
- int rval = 0, errorCode = 0;
+ int rval = 0;
DBusError error;
dbus_error_init (&error);
@@ -284,7 +285,6 @@ int send_pas_register(const char* method, int notificationFlag)
DBUS_TYPE_STRING, &objName,
DBUS_TYPE_INT32, &notificationFlag,
DBUS_TYPE_UINT32, &gTimeoutMs,
- DBUS_TYPE_INT32, &errorCode,
DBUS_TYPE_INVALID);
if(conn != NULL)
@@ -373,7 +373,8 @@ int send_pas_request(const char* method, unsigned int requestID, int status)
int register_pers_admin_service(void)
{
- int notificationFlag = 88; // TODO send correct notification flag
+ // register for everything
+ int notificationFlag = PasMsg_Block | PasMsg_WriteBack | PasMsg_Unblock;
return send_pas_register("RegisterPersAdminNotification", notificationFlag);
}
@@ -382,31 +383,29 @@ int register_pers_admin_service(void)
int unregister_pers_admin_service(void)
{
- int notificationFlag = 88; // TODO send correct notification flag
+ // register for everything
+ int notificationFlag = PasMsg_Block | PasMsg_WriteBack | PasMsg_Unblock;
return send_pas_register("UnRegisterPersAdminNotification", notificationFlag);
}
-int pers_admin_service_data_sync_complete(void)
+int pers_admin_service_data_sync_complete(unsigned int requestID)
{
- unsigned int requestID = 0;
- int status = 0;
-
- return send_pas_request("PersistenceAdminRequestCompleted", requestID, status);
+ return send_pas_request("PersistenceAdminRequestCompleted", requestID, 1);
}
-void process_block_and_write_data_back(void)
+void process_block_and_write_data_back(unsigned int requestID)
{
// lock persistence data access
pers_lock_access();
// sync data back to memory device
pers_data_sync();
// send complete notification
- pers_admin_service_data_sync_complete();
+ pers_admin_service_data_sync_complete(requestID);
}
diff --git a/src/persistence_client_library_pas_interface.h b/src/persistence_client_library_pas_interface.h
index 1b087e3..e93c06e 100644
--- a/src/persistence_client_library_pas_interface.h
+++ b/src/persistence_client_library_pas_interface.h
@@ -60,7 +60,7 @@ int isAccessLocked(void);
/// block persistence access and write data back to device
-void process_block_and_write_data_back(void);
+void process_block_and_write_data_back(unsigned int requestID);
/**
diff --git a/test/persistence_client_library_test.c b/test/persistence_client_library_test.c
index 3315a25..9de9148 100644
--- a/test/persistence_client_library_test.c
+++ b/test/persistence_client_library_test.c
@@ -30,9 +30,8 @@
#include "../include/persistence_client_library_file.h"
#include "../include/persistence_client_library_error_def.h"
-// internal header, should normally not included in any application
-// only for testing the cursor functionality
-#include "../src/persistence_client_library_data_access.h"
+// protected header, should be used only be persistence components
+#include "../include_protected/persistence_client_library_data_access.h"
#define BUF_SIZE 64