diff options
author | hyun lee <hyunn.lee@samsung.com> | 2014-11-13 11:28:14 +0900 |
---|---|---|
committer | hyun lee <hyunn.lee@samsung.com> | 2014-11-13 11:28:14 +0900 |
commit | 7cdc03b89a5a9a28b8bc4094e7c21e8b7e83fde4 (patch) | |
tree | 297e0f55d4b7896482aa1408f8cc0793f30505d3 | |
parent | c17dc905783b7ebe6043390fdfe29528380eb2ae (diff) | |
download | badge-7cdc03b89a5a9a28b8bc4094e7c21e8b7e83fde4.tar.gz badge-7cdc03b89a5a9a28b8bc4094e7c21e8b7e83fde4.tar.bz2 badge-7cdc03b89a5a9a28b8bc4094e7c21e8b7e83fde4.zip |
Merge from 2.3b
Change-Id: I345059b9ebd35f874c530cd74ba2b46b1af480f4
Signed-off-by: hyun lee <hyunn.lee@samsung.com>
-rwxr-xr-x | CMakeLists.txt | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | badge.pc.in | 4 | ||||
-rwxr-xr-x | doc/badge_doc.h | 14 | ||||
-rwxr-xr-x | include/badge.h | 341 | ||||
-rwxr-xr-x | include/badge_db.h | 10 | ||||
-rwxr-xr-x | include/badge_error.h | 26 | ||||
-rwxr-xr-x | include/badge_internal.h | 84 | ||||
-rwxr-xr-x | include/badge_ipc.h | 20 | ||||
-rwxr-xr-x | include/badge_setting_service.h | 4 | ||||
-rwxr-xr-x | packaging/badge.spec | 5 | ||||
-rwxr-xr-x | src/badge.c | 88 | ||||
-rwxr-xr-x | src/badge_db.c | 24 | ||||
-rwxr-xr-x | src/badge_internal.c | 200 | ||||
-rwxr-xr-x | src/badge_ipc.c | 111 | ||||
-rwxr-xr-x | src/badge_setting.c | 59 |
15 files changed, 623 insertions, 371 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a78c820..7cb1d86 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,8 +16,8 @@ SET(CMAKE_SKIP_BUILD_RPATH true) SET(INSTALL_HEADERS_DEVEL badge.h - badge_setting.h badge_error.h + badge_internal.h ) SET(INSTALL_HEADERS_SERVICE_DEVEL @@ -50,6 +50,8 @@ pkg_check_modules(pkgs REQUIRED dbus-glib-1 vconf com-core + capi-appfw-package-manager + db-util ) FOREACH(flag ${pkgs_CFLAGS}) diff --git a/badge.pc.in b/badge.pc.in index 3ab8330..b083171 100644..100755 --- a/badge.pc.in +++ b/badge.pc.in @@ -5,7 +5,7 @@ includedir=@INCLUDEDIR@ Name: badge Description: Badge supporting library -Version: @VERSION@ -Requires: +Version: @VERSION@ +Requires: capi-base-common Libs: -L${libdir} -lbadge Cflags: -I${includedir} diff --git a/doc/badge_doc.h b/doc/badge_doc.h index 31fb372..62e157f 100755 --- a/doc/badge_doc.h +++ b/doc/badge_doc.h @@ -22,8 +22,8 @@ /** * - * @ingroup BADGE_LIBRARY - * @defgroup BADGE_MODULE badge APIs + * @defgroup BADGE_MODULE Badge + * @ingroup CAPI_APPLICATION_FRAMEWORK * @brief Badge APIs * * @section BADGE_MODULE_HEADER Required Header @@ -31,14 +31,4 @@ * @section BADGE_MODULE_OVERVIEW Overview * It provides functions for creating and inserting and updating badge. * - * @ingroup BADGE_LIBRARY - * @defgroup BADGE_TYPE badge type - * @brief Type for badge APIs - * - * @section BADGE_TYPE_MODULE_HEADER Required Header - * \#include <badge.h> - * \#include <badge_error.h> - * @section BADGE_TYPE_MODULE_OVERVIEW Overview - * Type defines and enumerations for Badge APIs - * */ diff --git a/include/badge.h b/include/badge.h index 347dcad..0b742ea 100755 --- a/include/badge.h +++ b/include/badge.h @@ -32,73 +32,184 @@ extern "C" { /** * @file badge.h - * @brief This file contains the badge APIs + * @brief This file contains the badge APIs. */ /** - * @addtogroup BADGE_TYPE + * @addtogroup BADGE_MODULE * @{ */ + /** - * @brief Enumeration for Badge action + * @internal + * @brief Enumeration for Badge Action. + * @since_tizen 2.3 */ -enum _badge_action { - BADGE_ACTION_CREATE = 0, - BADGE_ACTION_REMOVE, - BADGE_ACTION_UPDATE, - BADGE_ACTION_CHANGED_DISPLAY, - BADGE_ACTION_SERVICE_READY, +enum badge_action { + BADGE_ACTION_CREATE = 0, /**< @internal Badge created */ + BADGE_ACTION_REMOVE, /**< @internal Badge removed */ + BADGE_ACTION_UPDATE, /**< @internal Badge updated */ + BADGE_ACTION_CHANGED_DISPLAY, /**< @internal The display option of the badge changed */ + BADGE_ACTION_SERVICE_READY, /**< @internal The badge service is ready */ }; /** - * @brief Called to retrieve the badge existed. - * @param[in] pkgname The name of package - * @param[in] count The count of badge - * @param[in] user_data The user data passed from the foreach function + * @internal + * @brief Called to retrieve the badge existence. + * @since_tizen 2.3 + * @param[in] app_id The name of the application + * @param[in] count The count of the badge + * @param[in] data The user data passed from the foreach function * @pre badge_foreach_existed() will invoke this callback. * @see badge_foreach_existed() */ -typedef void (*badge_cb)(const char *pkgname, unsigned int count, void *data); +typedef void (*badge_cb)(const char *app_id, unsigned int count, void *data); /** - * @brief Called when badge information is changed. - * @param[in] action The type of changing - * @param[in] pkgname The name of package - * @param[in] count The count of badge - * @param[in] user_data The user data passed from the callback register function + * @internal + * @brief Called when the badge information is changed. + * @since_tizen 2.3 + * @param[in] action The type of the change + * @param[in] app_id The name of the application + * @param[in] count The count of the badge + * @param[in] data The user data passed from the callback register function * @pre badge_register_changed_cb() will invoke this callback. * @see badge_unregister_changed_cb() */ -typedef void (*badge_change_cb)(unsigned int action, const char *pkgname, +typedef void (*badge_change_cb)(unsigned int action, const char *app_id, unsigned int count, void *data); /** - * @} + * @internal + * @brief Retrieves all existing badges. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] callback The callback function + * @param[in] data The user data to be passed to the callback function + * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_FROM_DB Error form DB + * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory + * @retval BADGE_ERROR_NOT_EXIST Not exist + * @see #badge_error_e + * @see badge_get_count() + * @see badge_is_existing() */ +int badge_foreach_existed(badge_cb callback, void *data); /** - * @addtogroup BADGE_MODULE - * @{ + * @internal + * @brief Registers a callback function to receive badge change event. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] callback The callback function + * @param[in] data The user data to be passed to the callback function + * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory + * @see #badge_error_e + * @see badge_new() + * @see badge_remove() + * @see badge_set_count() + */ +int badge_register_changed_cb(badge_change_cb callback, void *data); + +/** + * @internal + * @brief Unregisters a callback function to receive badge change event. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] callback The callback function + * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_NOT_EXIST Not exist + * @see #badge_error_e + * @see badge_register_changed_cb() + */ +int badge_unregister_changed_cb(badge_change_cb callback); + +/** + * @internal + * @brief This function checks whether badge service is ready + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. + * @return 1 if badge service is ready, other value if badge service isn't ready + * @exception BADGE_ERROR_NONE Success + * @exception BADGE_ERROR_SERVICE_NOT_READY Service is not ready + */ +int badge_is_service_ready(void); + +/** + * @internal + * @brief This function adds deferred task. the registered task will be executed when badge service become ready + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] badge_add_deferred_task The callback function + * @param[in] user_data The user data to be passed to the callback function + * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory + * @see #badge_error_e + * @see badge_is_service_ready() */ +int badge_add_deferred_task( + void (*badge_add_deferred_task)(void *data), void *user_data); /** - * @brief This function creates badge for designated package. + * @internal + * @brief This function removes deferred task. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] badge_add_deferred_task The callback function + * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @see #badge_error_e + * @see badge_is_service_ready() + */ +int badge_del_deferred_task( + void (*badge_add_deferred_task)(void *data)); + +/** + * @brief Creates a badge for the application itself. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification * @details Creates new badge to display. - * @param[in] pkgname The name of designated package - * @param[in] writable_pkg The name of package which is authorized to change badge + * @param[in] writable_app_id The id of application which is authorized to change the badge * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_IO_ERROR Error from I/O + * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready * @see #badge_error_e * @par Sample code: * @code #include <badge.h> ... { - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; - err = badge_create("org.tizen.sms", "org.tizen.sms2"); + err = badge_new(app_id); if(err != BADGE_ERROR_NONE) { return; } @@ -106,22 +217,30 @@ typedef void (*badge_change_cb)(unsigned int action, const char *pkgname, } * @endcode */ -badge_error_e badge_create(const char *pkgname, const char *writable_pkg); +int badge_new(const char *writable_app_id); /** - * @brief This function removes badge for designated package. - * @param[in] pkgname The name of designated package + * @brief Removes the badge for the designated application. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] app_id The name of the designated application * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_IO_ERROR Error from I/O + * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready * @see #badge_error_e * @par Sample code: * @code #include <badge.h> ... { - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; - err = badge_remove("org.tizen.sms"); + err = badge_remove(app_id); if(err != BADGE_ERROR_NONE) { return; } @@ -129,23 +248,31 @@ badge_error_e badge_create(const char *pkgname, const char *writable_pkg); } * @endcode */ -badge_error_e badge_remove(const char *pkgname); +int badge_remove(const char *app_id); /** - * @brief This function sets badge count for designated package. - * @param[in] pkgname The name of designated package - * @param[in] count The count of badge + * @brief Sets badge count for the designated application. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] app_id The name of the designated application + * @param[in] count The count of the badge * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_IO_ERROR Error from I/O + * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready * @see #badge_error_e - * @see badge_create() + * @see badge_new() * @par Sample code: * @code #include <badge.h> ... { - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; - err = badge_set_count("org.tizen.sms", 1); + err = badge_set_count(app_id, 1); if(err != BADGE_ERROR_NONE) { return; } @@ -153,24 +280,34 @@ badge_error_e badge_remove(const char *pkgname); } * @endcode */ -badge_error_e badge_set_count(const char *pkgname, unsigned int count); +int badge_set_count(const char *app_id, unsigned int count); /** - * @brief This function gets badge count for designated package. - * @param[in] pkgname The name of designated package - * @param[out] count The count of badge + * @brief Gets badge count for the designated application. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] app_id The name of the designated application + * @param[out] count The count of the badge * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_FROM_DB Error from DB + * @retval BADGE_ERROR_ALREADY_EXIST Already exist + * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory * @see #badge_error_e - * @see badge_create() + * @see badge_new() * @see badge_set_count() * @par Sample code: * @code #include <badge.h> ... { - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; + int count = 0; - err = badge_get_count("org.tizen.sms", 1); + err = badge_get_count(app_id, &count); if(err != BADGE_ERROR_NONE) { return; } @@ -178,23 +315,31 @@ badge_error_e badge_set_count(const char *pkgname, unsigned int count); } * @endcode */ -badge_error_e badge_get_count(const char *pkgname, unsigned int *count); +int badge_get_count(const char *app_id, unsigned int *count); /** - * @brief This function sets displaying option for designated package. - * @param[in] pkgname The name of designated package - * @param[in] is_display The displaying option, 1 = display 0 = not display + * @brief Sets the display option for the designated application. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] app_id The name of the designated application + * @param[in] is_display The display option (1 = display, 0 = not display) * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_IO_ERROR Error from I/O + * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready * @see #badge_error_e - * @see badge_create() + * @see badge_new() * @par Sample code: * @code #include <badge.h> ... { - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; - err = badge_set_display("org.tizen.sms", 1); + err = badge_set_display(app_id, 1); if(err != BADGE_ERROR_NONE) { return; } @@ -202,15 +347,25 @@ badge_error_e badge_get_count(const char *pkgname, unsigned int *count); } * @endcode */ -badge_error_e badge_set_display(const char *pkgname, unsigned int is_display); +int badge_set_display(const char *app_id, unsigned int is_display); /** - * @brief This function gets displaying option for designated package. - * @param[in] pkgname The name of designated package - * @param[out] is_display The displaying option, 1 = display 0 = not display + * @brief Gets the display option for the designated application. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] app_id The name of the designated application + * @param[out] is_display The display option (1 = display, 0 = not display) * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_FROM_DB Error from DB + * @retval BADGE_ERROR_NOT_EXIST Not exist + * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready + * @retval BADGE_ERROR_OUT_OF_MEMORY Out of memory * @see #badge_error_e - * @see badge_create() + * @see badge_new() * @see badge_set_count() * @par Sample code: * @code @@ -218,9 +373,9 @@ badge_error_e badge_set_display(const char *pkgname, unsigned int is_display); ... { int is_display = 0; - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; - err = badge_get_display("org.tizen.sms", &is_display); + err = badge_get_display(app_id, &is_display); if(err != BADGE_ERROR_NONE) { return; } @@ -228,25 +383,35 @@ badge_error_e badge_set_display(const char *pkgname, unsigned int is_display); } * @endcode */ -badge_error_e badge_get_display(const char *pkgname, unsigned int *is_display); +int badge_get_display(const char *app_id, unsigned int *is_display); /** - * @brief This function tests badge for designated package is existed or not. - * @param[in] pkgname The name of designated package - * @param[out] existing The bool value of badge existing status + * @internal + * @brief Tests if the badge for the designated application exists or not. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @param[in] app_id The name of the designated application + * @param[out] existing The bool value of badge existence status * @return #BADGE_ERROR_NONE if success, other value if failure + * @retval BADGE_ERROR_NONE Success + * @retval BADGE_ERROR_INVALID_PARAMETER Invalid parameter + * @retval BADGE_ERROR_PERMISSION_DENIED The application does not have the privilege to call this method + * @retval BADGE_ERROR_FROM_DB Error from DB + * @retval BADGE_ERROR_NOT_EXIST Not exist + * @retval BADGE_ERROR_SERVICE_NOT_READY Service is not ready * @see #badge_error_e - * @see badge_create() + * @see badge_new() * @see badge_remove() * @par Sample code: * @code #include <badge.h> ... { - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; bool exist; - err = badge_is_existing("org.tizen.sms", &exist); + err = badge_is_existing(app_id, &exist); if(err != BADGE_ERROR_NONE) { return; } @@ -254,52 +419,14 @@ badge_error_e badge_get_display(const char *pkgname, unsigned int *is_display); } * @endcode */ -badge_error_e badge_is_existing(const char *pkgname, bool *existing); - -/** - * @brief This function retrieves all badges which are existed. - * @param[in] callback The callback function - * @param[in] data The user data to be passed to the callback function - * @return #BADGE_ERROR_NONE if success, other value if failure - * @see #badge_error_e - * @see badge_get_count() - * @see badge_is_existing() - */ -badge_error_e badge_foreach_existed(badge_cb callback, void *data); +int badge_is_existing(const char *app_id, bool *existing); -/** - * @brief This function registers callback function to receive badge changed event. - * @param[in] callback The callback function - * @param[in] data The user data to be passed to the callback function - * @return #BADGE_ERROR_NONE if success, other value if failure - * @see #badge_error_e - * @see badge_create() - * @see badge_remove() - * @see badge_set_count() - */ -badge_error_e badge_register_changed_cb(badge_change_cb callback, void *data); -/** - * @brief This function unregisters callback function to receive badge changed event. - * @param[in] callback The callback function - * @return #BADGE_ERROR_NONE if success, other value if failure - * @see #badge_error_e - * @see badge_register_changed_cb() - */ -badge_error_e badge_unregister_changed_cb(badge_change_cb callback); /** * @} */ -int badge_is_service_ready(void); - -badge_error_e badge_add_deffered_task( - void (*deffered_task_cb)(void *data), void *user_data); - -badge_error_e badge_del_deffered_task( - void (*deffered_task_cb)(void *data)); - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/include/badge_db.h b/include/badge_db.h index 1d490c5..75d6281 100755 --- a/include/badge_db.h +++ b/include/badge_db.h @@ -32,11 +32,11 @@ extern "C" { #endif -badge_error_e badge_db_insert(const char *pkgname, const char *writable_pkg, const char *caller); -badge_error_e badge_db_delete(const char *pkgname, const char *caller_pkg); -badge_error_e badge_db_set_count(const char *pkgname, const char *caller_pkg, int count); -badge_error_e badge_db_set_display_option(const char *pkgname, const char *caller_pkg, int is_display); -badge_error_e badge_db_exec(sqlite3 * db, const char *query, int *num_changes); +int badge_db_insert(const char *pkgname, const char *writable_pkg, const char *caller); +int badge_db_delete(const char *pkgname, const char *caller_pkg); +int badge_db_set_count(const char *pkgname, const char *caller_pkg, int count); +int badge_db_set_display_option(const char *pkgname, const char *caller_pkg, int is_display); +int badge_db_exec(sqlite3 * db, const char *query, int *num_changes); #ifdef __cplusplus } diff --git a/include/badge_error.h b/include/badge_error.h index 89d1abb..9fa5d98 100755 --- a/include/badge_error.h +++ b/include/badge_error.h @@ -24,6 +24,8 @@ #ifndef __BADGE_ERROR_DEF_H__ #define __BADGE_ERROR_DEF_H__ +#include <tizen.h> + #ifdef __cplusplus extern "C" { #endif @@ -34,24 +36,24 @@ extern "C" { */ /** - * @addtogroup BADGE_TYPE + * @addtogroup BADGE_MODULE * @{ */ /** - * @breief Enumeration for Badge error + * @brief Enumeration for Badge Error */ typedef enum _badge_error_e { - BADGE_ERROR_NONE = 0, /**< Success */ - BADGE_ERROR_INVALID_DATA = -1, /**< Invalid parameter */ - BADGE_ERROR_NO_MEMORY = -2, /**< No memory */ - BADGE_ERROR_FROM_DB = -3, /**< Error from DB */ - BADGE_ERROR_ALREADY_EXIST = -4, /**< Already exist */ - BADGE_ERROR_FROM_DBUS = -5, /**< Error from DBus */ - BADGE_ERROR_NOT_EXIST = -6, /**< Not exist */ - BADGE_ERROR_PERMISSION_DENIED = -7, /**< Permission denied */ - BADGE_ERROR_IO = -8, /**< Error from I/O */ - BADGE_ERROR_SERVICE_NOT_READY = -9, /**< Error service not ready */ + BADGE_ERROR_NONE = TIZEN_ERROR_NONE, /**< Success */ + BADGE_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ + BADGE_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */ + BADGE_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */ + BADGE_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< Error from I/O */ + BADGE_ERROR_FROM_DB = TIZEN_ERROR_BADGE | 0x01, /**< Error from DB */ + BADGE_ERROR_ALREADY_EXIST = TIZEN_ERROR_BADGE | 0x02, /**< Already exist */ + BADGE_ERROR_FROM_DBUS = TIZEN_ERROR_BADGE | 0x03, /**< Error from DBus */ + BADGE_ERROR_NOT_EXIST = TIZEN_ERROR_BADGE | 0x04, /**< Not exist */ + BADGE_ERROR_SERVICE_NOT_READY = TIZEN_ERROR_BADGE | 0x05, /**< Error service not ready */ } badge_error_e; /** diff --git a/include/badge_internal.h b/include/badge_internal.h index d3b6681..62463d8 100755 --- a/include/badge_internal.h +++ b/include/badge_internal.h @@ -33,44 +33,100 @@ #define EXPORT_API __attribute__ ((visibility("default"))) #endif +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + typedef struct _badge_h badge_h; char *_badge_get_pkgname_by_pid(void); -badge_error_e _badge_is_existing(const char *pkgname, bool *existing); +int _badge_is_existing(const char *pkgname, bool *existing); -badge_error_e _badge_foreach_existed(badge_cb callback, void *data); +int _badge_foreach_existed(badge_cb callback, void *data); -badge_error_e _badge_insert(badge_h *badge); +int _badge_insert(badge_h *badge); -badge_error_e _badge_remove(const char *caller, const char *pkgname); +int _badge_remove(const char *caller, const char *pkgname); -badge_error_e _badget_set_count(const char *caller, const char *pkgname, +int _badget_set_count(const char *caller, const char *pkgname, unsigned int count); -badge_error_e _badget_get_count(const char *pkgname, unsigned int *count); +int _badget_get_count(const char *pkgname, unsigned int *count); -badge_error_e _badget_set_display(const char *pkgname, +int _badget_set_display(const char *pkgname, unsigned int is_display); -badge_error_e _badget_get_display(const char *pkgname, unsigned int *is_display); +int _badget_get_display(const char *pkgname, unsigned int *is_display); -badge_error_e _badge_register_changed_cb(badge_change_cb callback, void *data); +int _badge_register_changed_cb(badge_change_cb callback, void *data); -badge_error_e _badge_unregister_changed_cb(badge_change_cb callback); +int _badge_unregister_changed_cb(badge_change_cb callback); -badge_error_e _badge_free(badge_h *badge); +int _badge_free(badge_h *badge); badge_h *_badge_new(const char *pkgname, const char *writable_pkgs, - badge_error_e *err); + int *err); -char *_badge_pkgs_new(badge_error_e *err, const char *pkg1, ...); +char *_badge_pkgs_new(int *err, const char *pkg1, ...); -char *_badge_pkgs_new_valist(badge_error_e *err, +char *_badge_pkgs_new_valist(int *err, const char *pkg1, va_list args); void badge_changed_cb_call(unsigned int action, const char *pkgname, unsigned int count); +/** + * @internal + * @brief Creates a badge for the designated package. + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/notification + * @details Creates new badge to display. + * @param[in] pkgname The name of the designated package + * @param[in] writable_pkg The name of package which is authorized to change the badge + * @return #BADGE_ERROR_NONE if success, other value if failure + * @see #badge_error_e + * @par Sample code: + * @code +#include <badge.h> +... +{ + int err = BADGE_ERROR_NONE; + + err = badge_create("org.tizen.sms", "org.tizen.sms2"); + if(err != BADGE_ERROR_NONE) { + return; + } + +} + * @endcode + */ +int badge_create(const char *pkgname, const char *writable_pkg); + +/** + * @brief This function sets badge property for designated package. + * @param[in] pkgname The name of designated package + * @param[in] property name + * @param[in] property value + * @return #BADGE_ERROR_NONE if success, other value if failure + * @see #badge_error_e + */ +int badge_setting_property_set(const char *pkgname, const char *property, const char *value); + +/** + * @brief This function gets badge property for designated package. + * @param[in] pkgname The name of designated package + * @param[in] property name + * @param[in] pointer which can save the getting value + * @return #BADGE_ERROR_NONE if success, other value if failure + * @see #badge_error_e + */ +int badge_setting_property_get(const char *pkgname, const char *property, char **value); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + #endif /* __BADGE_INTERNAL_DEF_H__ */ diff --git a/include/badge_ipc.h b/include/badge_ipc.h index 3574402..2fc87a4 100755 --- a/include/badge_ipc.h +++ b/include/badge_ipc.h @@ -33,20 +33,20 @@ extern "C" { struct packet; -badge_error_e badge_ipc_monitor_init(void); -badge_error_e badge_ipc_monitor_fini(void); +int badge_ipc_monitor_init(void); +int badge_ipc_monitor_fini(void); -badge_error_e badge_ipc_request_insert(const char *pkgname, const char *writable_pkg, const char *caller); -badge_error_e badge_ipc_request_delete(const char *pkgname, const char *caller); -badge_error_e badge_ipc_request_set_count(const char *pkgname, const char *caller, int count); -badge_error_e badge_ipc_request_set_display(const char *pkgname, const char *caller, int display_option); +int badge_ipc_request_insert(const char *pkgname, const char *writable_pkg, const char *caller); +int badge_ipc_request_delete(const char *pkgname, const char *caller); +int badge_ipc_request_set_count(const char *pkgname, const char *caller, int count); +int badge_ipc_request_set_display(const char *pkgname, const char *caller, int display_option); int badge_ipc_is_master_ready(void); -badge_error_e badge_ipc_add_deffered_task(void (*deffered_task_cb)(void *data), void *user_data); -badge_error_e badge_ipc_del_deffered_task(void (*deffered_task_cb)(void *data)); +int badge_ipc_add_deferred_task(void (*badge_add_deferred_task)(void *data), void *user_data); +int badge_ipc_del_deferred_task(void (*badge_add_deferred_task)(void *data)); -badge_error_e badge_ipc_setting_property_set(const char *pkgname, const char *property, const char *value); -badge_error_e badge_ipc_setting_property_get(const char *pkgname, const char *property, char **value); +int badge_ipc_setting_property_set(const char *pkgname, const char *property, const char *value); +int badge_ipc_setting_property_get(const char *pkgname, const char *property, char **value); #ifdef __cplusplus } diff --git a/include/badge_setting_service.h b/include/badge_setting_service.h index 9b452a7..492af84 100755 --- a/include/badge_setting_service.h +++ b/include/badge_setting_service.h @@ -30,8 +30,8 @@ extern "C" { #endif -badge_error_e badge_setting_db_set(const char *pkgname, const char *property, const char *value); -badge_error_e badge_setting_db_get(const char *pkgname, const char *property, char **value); +int badge_setting_db_set(const char *pkgname, const char *property, const char *value); +int badge_setting_db_get(const char *pkgname, const char *property, char **value); #ifdef __cplusplus } diff --git a/packaging/badge.spec b/packaging/badge.spec index 3a88926..1b820f7 100755 --- a/packaging/badge.spec +++ b/packaging/badge.spec @@ -3,7 +3,6 @@ Name: badge Summary: badge library Version: 0.0.15 Release: 1 -VCS: magnolia/framework/appfw/badge#badge_0.0.2-2-34-g7d493a8a797f0022faafaa25561d2e85a2bde6bf Group: TBD License: Apache-2.0 Source0: %{name}-%{version}.tar.gz @@ -13,6 +12,8 @@ BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(vconf) BuildRequires: pkgconfig(com-core) +BuildRequires: pkgconfig(capi-appfw-package-manager) +BuildRequires: pkgconfig(db-util) BuildRequires: cmake Requires(post): /sbin/ldconfig requires(postun): /sbin/ldconfig @@ -107,7 +108,7 @@ fi %defattr(-,root,root,-) %{_includedir}/badge/badge.h %{_includedir}/badge/badge_error.h -%{_includedir}/badge/badge_setting.h +%{_includedir}/badge/badge_internal.h %{_libdir}/pkgconfig/%{name}.pc %files service-devel diff --git a/src/badge.c b/src/badge.c index 7af551a..5de4010 100755 --- a/src/badge.c +++ b/src/badge.c @@ -30,13 +30,13 @@ #include "badge_ipc.h" EXPORT_API -badge_error_e badge_create(const char *pkgname, const char *writable_pkg) +int badge_create(const char *pkgname, const char *writable_pkg) { char *caller = NULL; - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; if (pkgname == NULL) { - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } caller = _badge_get_pkgname_by_pid(); @@ -52,13 +52,31 @@ badge_error_e badge_create(const char *pkgname, const char *writable_pkg) } EXPORT_API -badge_error_e badge_remove(const char *pkgname) +int badge_new(const char *writable_app_id) { char *caller = NULL; - badge_error_e result = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; - if (pkgname == NULL) { - return BADGE_ERROR_INVALID_DATA; + caller = _badge_get_pkgname_by_pid(); + if (!caller) { + ERR("fail to get caller pkgname"); + return BADGE_ERROR_PERMISSION_DENIED; + } + + err = badge_ipc_request_insert(caller, writable_app_id, caller); + + free(caller); + return err; +} + +EXPORT_API +int badge_remove(const char *app_id) +{ + char *caller = NULL; + int result = BADGE_ERROR_NONE; + + if (app_id == NULL) { + return BADGE_ERROR_INVALID_PARAMETER; } caller = _badge_get_pkgname_by_pid(); @@ -67,33 +85,33 @@ badge_error_e badge_remove(const char *pkgname) return BADGE_ERROR_PERMISSION_DENIED; } - result = badge_ipc_request_delete(pkgname, caller); + result = badge_ipc_request_delete(app_id, caller); free(caller); return result; } EXPORT_API -badge_error_e badge_is_existing(const char *pkgname, bool *existing) +int badge_is_existing(const char *app_id, bool *existing) { - return _badge_is_existing(pkgname, existing); + return _badge_is_existing(app_id, existing); } EXPORT_API -badge_error_e badge_foreach_existed(badge_cb callback, void *data) +int badge_foreach_existed(badge_cb callback, void *data) { return _badge_foreach_existed(callback, data); } EXPORT_API -badge_error_e badge_set_count(const char *pkgname, unsigned int count) +int badge_set_count(const char *app_id, unsigned int count) { char *caller = NULL; - badge_error_e result = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; - if (pkgname == NULL) { - return BADGE_ERROR_INVALID_DATA; + if (app_id == NULL) { + return BADGE_ERROR_INVALID_PARAMETER; } caller = _badge_get_pkgname_by_pid(); @@ -102,26 +120,26 @@ badge_error_e badge_set_count(const char *pkgname, unsigned int count) return BADGE_ERROR_PERMISSION_DENIED; } - result = badge_ipc_request_set_count(pkgname, caller, count); + result = badge_ipc_request_set_count(app_id, caller, count); free(caller); return result; } EXPORT_API -badge_error_e badge_get_count(const char *pkgname, unsigned int *count) +int badge_get_count(const char *app_id, unsigned int *count) { - return _badget_get_count(pkgname, count); + return _badget_get_count(app_id, count); } EXPORT_API -badge_error_e badge_set_display(const char *pkgname, unsigned int is_display) +int badge_set_display(const char *app_id, unsigned int is_display) { char *caller = NULL; - badge_error_e result = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; - if (pkgname == NULL) { - return BADGE_ERROR_INVALID_DATA; + if (app_id == NULL) { + return BADGE_ERROR_INVALID_PARAMETER; } caller = _badge_get_pkgname_by_pid(); @@ -130,33 +148,33 @@ badge_error_e badge_set_display(const char *pkgname, unsigned int is_display) return BADGE_ERROR_PERMISSION_DENIED; } - result = badge_ipc_request_set_display(pkgname, caller, is_display); + result = badge_ipc_request_set_display(app_id, caller, is_display); free(caller); return result; } EXPORT_API -badge_error_e badge_get_display(const char *pkgname, unsigned int *is_display) +int badge_get_display(const char *app_id, unsigned int *is_display) { - return _badget_get_display(pkgname, is_display); + return _badget_get_display(app_id, is_display); } EXPORT_API -badge_error_e badge_register_changed_cb(badge_change_cb callback, void *data) +int badge_register_changed_cb(badge_change_cb callback, void *data) { if (callback == NULL) { - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } return _badge_register_changed_cb(callback, data); } EXPORT_API -badge_error_e badge_unregister_changed_cb(badge_change_cb callback) +int badge_unregister_changed_cb(badge_change_cb callback) { if (callback == NULL) { - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } return _badge_unregister_changed_cb(callback); @@ -169,15 +187,15 @@ int badge_is_service_ready(void) } EXPORT_API -badge_error_e badge_add_deffered_task( - void (*deffered_task_cb)(void *data), void *user_data) +int badge_add_deferred_task( + void (*badge_add_deferred_task)(void *data), void *user_data) { - return badge_ipc_add_deffered_task(deffered_task_cb, user_data); + return badge_ipc_add_deferred_task(badge_add_deferred_task, user_data); } EXPORT_API -badge_error_e badge_del_deffered_task( - void (*deffered_task_cb)(void *data)) +int badge_del_deferred_task( + void (*badge_add_deferred_task)(void *data)) { - return badge_ipc_del_deffered_task(deffered_task_cb); + return badge_ipc_del_deferred_task(badge_add_deferred_task); } diff --git a/src/badge_db.c b/src/badge_db.c index e95e9c6..b92bd28 100755 --- a/src/badge_db.c +++ b/src/badge_db.c @@ -30,15 +30,15 @@ #include "badge_internal.h" EXPORT_API -badge_error_e badge_db_insert(const char *pkgname, const char *writable_pkg, const char *caller) +int badge_db_insert(const char *pkgname, const char *writable_pkg, const char *caller) { - badge_error_e err = BADGE_ERROR_NONE; + int err = BADGE_ERROR_NONE; badge_h *badge = NULL; char *pkgs = NULL; if (!pkgname) { WARN("package name is NULL"); - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } pkgs = _badge_pkgs_new(&err, writable_pkg, caller, NULL); @@ -70,9 +70,9 @@ badge_error_e badge_db_insert(const char *pkgname, const char *writable_pkg, con } EXPORT_API -badge_error_e badge_db_delete(const char *pkgname, const char *caller) +int badge_db_delete(const char *pkgname, const char *caller) { - badge_error_e result = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; result = _badge_remove(caller, pkgname); @@ -80,9 +80,9 @@ badge_error_e badge_db_delete(const char *pkgname, const char *caller) } EXPORT_API -badge_error_e badge_db_set_count(const char *pkgname, const char *caller, int count) +int badge_db_set_count(const char *pkgname, const char *caller, int count) { - badge_error_e result = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; result = _badget_set_count(caller, pkgname, count); @@ -90,9 +90,9 @@ badge_error_e badge_db_set_count(const char *pkgname, const char *caller, int co } EXPORT_API -badge_error_e badge_db_set_display_option(const char *pkgname, const char *caller, int is_display) +int badge_db_set_display_option(const char *pkgname, const char *caller, int is_display) { - badge_error_e result = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; result = _badget_set_display(pkgname, is_display); @@ -100,16 +100,16 @@ badge_error_e badge_db_set_display_option(const char *pkgname, const char *calle } EXPORT_API -badge_error_e badge_db_exec(sqlite3 * db, const char *query, int *num_changes) +int badge_db_exec(sqlite3 * db, const char *query, int *num_changes) { int ret = 0; sqlite3_stmt *stmt = NULL; if (db == NULL) { - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } if (query == NULL) { - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } ret = sqlite3_prepare_v2(db, query, strlen(query), &stmt, NULL); diff --git a/src/badge_internal.c b/src/badge_internal.c index f791cf4..5fca1a6 100755 --- a/src/badge_internal.c +++ b/src/badge_internal.c @@ -31,6 +31,7 @@ #include <aul.h> #include <sqlite3.h> #include <db-util.h> +#include <package_manager.h> #include "badge_log.h" #include "badge_error.h" @@ -112,7 +113,7 @@ char *_badge_get_pkgname_by_pid(void) return pkgname; } -static badge_error_e _badge_check_data_inserted(const char *pkgname, +static int _badge_check_data_inserted(const char *pkgname, sqlite3 *db) { sqlite3_stmt *stmt = NULL; @@ -122,10 +123,10 @@ static badge_error_e _badge_check_data_inserted(const char *pkgname, int sqlret; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!db) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlbuf = sqlite3_mprintf("SELECT count(*) FROM %s WHERE " \ "pkgname = %Q", @@ -133,7 +134,7 @@ static badge_error_e _badge_check_data_inserted(const char *pkgname, if (!sqlbuf) { ERR("fail to alloc sql query"); - return BADGE_ERROR_NO_MEMORY; + return BADGE_ERROR_OUT_OF_MEMORY; } sqlret = sqlite3_prepare_v2(db, sqlbuf, -1, &stmt, NULL); @@ -167,7 +168,7 @@ free_and_return: return result; } -static badge_error_e _badge_check_option_inserted(const char *pkgname, +static int _badge_check_option_inserted(const char *pkgname, sqlite3 *db) { sqlite3_stmt *stmt = NULL; @@ -177,10 +178,10 @@ static badge_error_e _badge_check_option_inserted(const char *pkgname, int sqlret; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!db) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlbuf = sqlite3_mprintf("SELECT count(*) FROM %s WHERE " \ "pkgname = %Q", @@ -188,7 +189,7 @@ static badge_error_e _badge_check_option_inserted(const char *pkgname, if (!sqlbuf) { ERR("fail to alloc sql query"); - return BADGE_ERROR_NO_MEMORY; + return BADGE_ERROR_OUT_OF_MEMORY; } sqlret = sqlite3_prepare_v2(db, sqlbuf, -1, &stmt, NULL); @@ -222,34 +223,59 @@ free_and_return: return result; } -static badge_error_e _badge_check_writable(const char *caller, +static int _is_same_certinfo(const char *caller, const char *pkgname) +{ + int ret = PACKAGE_MANAGER_ERROR_NONE; + package_manager_compare_result_type_e compare_result = PACKAGE_MANAGER_COMPARE_MISMATCH; + + if (!caller) { + return 0; + } + if (!pkgname) { + return 0; + } + + ret = package_manager_compare_package_cert_info(pkgname, caller, &compare_result); + if (ret == PACKAGE_MANAGER_ERROR_NONE && + compare_result == PACKAGE_MANAGER_COMPARE_MATCH) { + return 1; + } + + return 0; +} + +static int _badge_check_writable(const char *caller, const char *pkgname, sqlite3 *db) { sqlite3_stmt *stmt = NULL; int count = 0; - badge_error_e result = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; char *sqlbuf = NULL; int sqlret; if (!db) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!caller) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (g_strcmp0(caller, pkgname) == 0) return BADGE_ERROR_NONE; + if (_is_same_certinfo(caller, pkgname) == 1) { + return BADGE_ERROR_NONE; + } + sqlbuf = sqlite3_mprintf("SELECT COUNT(*) FROM %s WHERE " \ "pkgname = %Q AND writable_pkgs LIKE '%%%q%%'", BADGE_TABLE_NAME, pkgname, caller); if (!sqlbuf) { ERR("fail to alloc sql query"); - return BADGE_ERROR_NO_MEMORY; + return BADGE_ERROR_OUT_OF_MEMORY; } sqlret = sqlite3_prepare_v2(db, sqlbuf, -1, &stmt, NULL); @@ -282,16 +308,16 @@ free_and_return: } -badge_error_e _badge_is_existing(const char *pkgname, bool *existing) +int _badge_is_existing(const char *pkgname, bool *existing) { sqlite3 *db = NULL; int sqlret; - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; if (!pkgname || !existing) { ERR("pkgname : %s, existing : %p", pkgname, existing); - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } sqlret = db_util_open(BADGE_DB_PATH, &db, 0); @@ -315,16 +341,16 @@ badge_error_e _badge_is_existing(const char *pkgname, bool *existing) return BADGE_ERROR_NONE; } -badge_error_e _badge_foreach_existed(badge_cb callback, void *data) +int _badge_foreach_existed(badge_cb callback, void *data) { sqlite3 *db = NULL; - badge_error_e result = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; char *sqlbuf = NULL; sqlite3_stmt *stmt = NULL; int sqlret; if (!callback) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(BADGE_DB_PATH, &db, 0); if (sqlret != SQLITE_OK || !db) { @@ -336,7 +362,7 @@ badge_error_e _badge_foreach_existed(badge_cb callback, void *data) BADGE_TABLE_NAME); if (!sqlbuf) { ERR("fail to alloc sql query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto free_and_return; } @@ -398,17 +424,17 @@ free_and_return: return result; } -badge_error_e _badge_insert(badge_h *badge) +int _badge_insert(badge_h *badge) { sqlite3 *db = NULL; int sqlret; - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; char *sqlbuf = NULL; char *err_msg = NULL; if (!badge || !badge->pkgname || !badge->writable_pkgs) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(BADGE_DB_PATH, &db, 0); if (sqlret != SQLITE_OK || !db) { @@ -432,7 +458,7 @@ badge_error_e _badge_insert(badge_h *badge) badge->pkgname, badge->writable_pkgs); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -459,7 +485,7 @@ badge_error_e _badge_insert(badge_h *badge) badge->pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -482,19 +508,19 @@ return_close_db: return result; } -badge_error_e _badge_remove(const char *caller, const char *pkgname) +int _badge_remove(const char *caller, const char *pkgname) { - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; sqlite3 *db = NULL; int sqlret; char *sqlbuf = NULL; if (!caller) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(BADGE_DB_PATH, &db, 0); if (sqlret != SQLITE_OK || !db) { @@ -518,7 +544,7 @@ badge_error_e _badge_remove(const char *caller, const char *pkgname) BADGE_TABLE_NAME, pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -541,7 +567,7 @@ badge_error_e _badge_remove(const char *caller, const char *pkgname) BADGE_OPTION_TABLE_NAME, pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -564,21 +590,21 @@ return_close_db: return result; } -badge_error_e _badget_set_count(const char *caller, const char *pkgname, +int _badget_set_count(const char *caller, const char *pkgname, unsigned int count) { - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; sqlite3 *db = NULL; char *sqlbuf = NULL; int sqlret; char *err_msg = NULL; if (!caller) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(BADGE_DB_PATH, &db, 0); if (sqlret != SQLITE_OK || !db) { @@ -603,7 +629,7 @@ badge_error_e _badget_set_count(const char *caller, const char *pkgname, BADGE_TABLE_NAME, count, pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -626,25 +652,30 @@ return_close_db: return result; } -badge_error_e _badget_get_count(const char *pkgname, unsigned int *count) +int _badget_get_count(const char *pkgname, unsigned int *count) { - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; sqlite3 *db = NULL; char *sqlbuf = NULL; sqlite3_stmt *stmt = NULL; int sqlret; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!count) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(BADGE_DB_PATH, &db, 0); if (sqlret != SQLITE_OK || !db) { ERR("fail to db_util_open - [%d]", sqlret); - return BADGE_ERROR_FROM_DB; + if (sqlret == SQLITE_PERM) { + return BADGE_ERROR_PERMISSION_DENIED; + } + else { + return BADGE_ERROR_FROM_DB; + } } ret = _badge_check_data_inserted(pkgname, db); @@ -658,7 +689,7 @@ badge_error_e _badget_get_count(const char *pkgname, unsigned int *count) BADGE_TABLE_NAME, pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -690,21 +721,21 @@ return_close_db: return result; } -badge_error_e _badget_set_display(const char *pkgname, +int _badget_set_display(const char *pkgname, unsigned int is_display) { - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; sqlite3 *db = NULL; char *sqlbuf = NULL; int sqlret; char *err_msg = NULL; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (is_display != 0 && is_display != 1) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(BADGE_DB_PATH, &db, 0); if (sqlret != SQLITE_OK || !db) { @@ -719,7 +750,7 @@ badge_error_e _badget_set_display(const char *pkgname, BADGE_OPTION_TABLE_NAME, is_display, pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -740,7 +771,7 @@ badge_error_e _badget_set_display(const char *pkgname, pkgname, is_display); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -767,25 +798,30 @@ return_close_db: return result; } -badge_error_e _badget_get_display(const char *pkgname, unsigned int *is_display) +int _badget_get_display(const char *pkgname, unsigned int *is_display) { - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; sqlite3 *db = NULL; char *sqlbuf = NULL; sqlite3_stmt *stmt = NULL; int sqlret; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!is_display) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(BADGE_DB_PATH, &db, 0); if (sqlret != SQLITE_OK || !db) { ERR("fail to db_util_open - [%d]", sqlret); - return BADGE_ERROR_FROM_DB; + if (sqlret == SQLITE_PERM) { + return BADGE_ERROR_PERMISSION_DENIED; + } + else { + return BADGE_ERROR_FROM_DB; + } } ret = _badge_check_option_inserted(pkgname, db); @@ -802,7 +838,7 @@ badge_error_e _badget_get_display(const char *pkgname, unsigned int *is_display) BADGE_OPTION_TABLE_NAME, pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -875,13 +911,13 @@ static gint _badge_data_compare(gconstpointer a, gconstpointer b) return 1; } -badge_error_e _badge_register_changed_cb(badge_change_cb callback, void *data) +int _badge_register_changed_cb(badge_change_cb callback, void *data) { struct _badge_cb_data *bd = NULL; GList *found = NULL; if (!callback) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; _badge_changed_monitor_init(); @@ -895,7 +931,7 @@ badge_error_e _badge_register_changed_cb(badge_change_cb callback, void *data) bd = malloc(sizeof(struct _badge_cb_data)); if (!bd) - return BADGE_ERROR_NO_MEMORY; + return BADGE_ERROR_OUT_OF_MEMORY; bd->callback = callback; @@ -906,12 +942,12 @@ badge_error_e _badge_register_changed_cb(badge_change_cb callback, void *data) return BADGE_ERROR_NONE; } -badge_error_e _badge_unregister_changed_cb(badge_change_cb callback) +int _badge_unregister_changed_cb(badge_change_cb callback) { GList *found = NULL; if (!callback) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; found = g_list_find_custom(g_badge_cb_list, (gconstpointer)callback, _badge_data_compare); @@ -925,13 +961,17 @@ badge_error_e _badge_unregister_changed_cb(badge_change_cb callback) if (!g_badge_cb_list) _badge_chanaged_monitor_fini(); - return BADGE_ERROR_NONE; + if (found != NULL) { + return BADGE_ERROR_NONE; + } else { + return BADGE_ERROR_INVALID_PARAMETER; + } } -badge_error_e _badge_free(badge_h *badge) +int _badge_free(badge_h *badge) { if (!badge) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (badge->pkgname) free(badge->pkgname); @@ -945,21 +985,21 @@ badge_error_e _badge_free(badge_h *badge) } badge_h *_badge_new(const char *pkgname, const char *writable_pkgs, - badge_error_e *err) + int *err) { badge_h *badge = NULL; if (!pkgname) { ERR("PKGNAME is NULL"); if (err) - *err = BADGE_ERROR_INVALID_DATA; + *err = BADGE_ERROR_INVALID_PARAMETER; return NULL; } if (!writable_pkgs) { ERR("writable_pkgs is NULL"); if (err) - *err = BADGE_ERROR_INVALID_DATA; + *err = BADGE_ERROR_INVALID_PARAMETER; return NULL; } @@ -968,7 +1008,7 @@ badge_h *_badge_new(const char *pkgname, const char *writable_pkgs, if (!badge) { ERR("fail to alloc handle"); if (err) - *err = BADGE_ERROR_NO_MEMORY; + *err = BADGE_ERROR_OUT_OF_MEMORY; return NULL; } @@ -980,7 +1020,7 @@ badge_h *_badge_new(const char *pkgname, const char *writable_pkgs, return badge; } -char *_badge_pkgs_new(badge_error_e *err, const char *pkg1, ...) +char *_badge_pkgs_new(int *err, const char *pkg1, ...) { char *caller_pkgname = NULL; char *s = NULL; @@ -1024,7 +1064,7 @@ char *_badge_pkgs_new(badge_error_e *err, const char *pkg1, ...) if (!result) { ERR("fail to alloc memory"); if (err) - *err = BADGE_ERROR_NO_MEMORY; + *err = BADGE_ERROR_OUT_OF_MEMORY; free(caller_pkgname); return NULL; } @@ -1045,7 +1085,7 @@ char *_badge_pkgs_new(badge_error_e *err, const char *pkg1, ...) if (!new_pkgs) { ERR("fail to alloc memory"); if (err) - *err = BADGE_ERROR_NO_MEMORY; + *err = BADGE_ERROR_OUT_OF_MEMORY; free(result); free(caller_pkgname); @@ -1060,7 +1100,7 @@ char *_badge_pkgs_new(badge_error_e *err, const char *pkg1, ...) return result; } -char *_badge_pkgs_new_valist(badge_error_e *err, const char *pkg1, va_list args) +char *_badge_pkgs_new_valist(int *err, const char *pkg1, va_list args) { char *caller_pkgname = NULL; char *s = NULL; @@ -1104,7 +1144,7 @@ char *_badge_pkgs_new_valist(badge_error_e *err, const char *pkg1, va_list args) if (!result) { ERR("fail to alloc memory"); if (err) - *err = BADGE_ERROR_NO_MEMORY; + *err = BADGE_ERROR_OUT_OF_MEMORY; free(caller_pkgname); va_end(args2); return NULL; @@ -1125,7 +1165,7 @@ char *_badge_pkgs_new_valist(badge_error_e *err, const char *pkg1, va_list args) if (!new_pkgs) { ERR("fail to alloc memory"); if (err) - *err = BADGE_ERROR_NO_MEMORY; + *err = BADGE_ERROR_OUT_OF_MEMORY; free(result); free(caller_pkgname); diff --git a/src/badge_ipc.c b/src/badge_ipc.c index 7cb728d..24826c6 100755 --- a/src/badge_ipc.c +++ b/src/badge_ipc.c @@ -72,9 +72,9 @@ struct _task_list { static task_list *g_task_list; -static badge_error_e badge_ipc_monitor_register(void); -static badge_error_e badge_ipc_monitor_deregister(void); -static void _do_deffered_task(void); +static int badge_ipc_monitor_register(void); +static int badge_ipc_monitor_deregister(void); +static void _do_deferred_task(void); static void _master_started_cb_task(keynode_t *node, void *data); /*! @@ -117,9 +117,9 @@ int badge_ipc_is_master_ready(void) return is_master_started; } -badge_error_e -badge_ipc_add_deffered_task( - void (*deffered_task_cb)(void *data), +int +badge_ipc_add_deferred_task( + void (*badge_add_deferred_task)(void *data), void *user_data) { task_list *list = NULL; @@ -129,7 +129,7 @@ badge_ipc_add_deffered_task( (task_list *) malloc(sizeof(task_list)); if (list_new == NULL) { - return BADGE_ERROR_NO_MEMORY; + return BADGE_ERROR_OUT_OF_MEMORY; } if (s_info.is_started_cb_set_task == 0) { @@ -140,7 +140,7 @@ badge_ipc_add_deffered_task( list_new->next = NULL; list_new->prev = NULL; - list_new->task_cb = deffered_task_cb; + list_new->task_cb = badge_add_deferred_task; list_new->data = user_data; if (g_task_list == NULL) { @@ -158,9 +158,9 @@ badge_ipc_add_deffered_task( return BADGE_ERROR_NONE; } -badge_error_e -badge_ipc_del_deffered_task( - void (*deffered_task_cb)(void *data)) +int +badge_ipc_del_deferred_task( + void (*badge_add_deferred_task)(void *data)) { task_list *list_del = NULL; task_list *list_prev = NULL; @@ -169,7 +169,7 @@ badge_ipc_del_deffered_task( list_del = g_task_list; if (list_del == NULL) { - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } while (list_del->prev != NULL) { @@ -177,7 +177,7 @@ badge_ipc_del_deffered_task( } do { - if (list_del->task_cb == deffered_task_cb) { + if (list_del->task_cb == badge_add_deferred_task) { list_prev = list_del->prev; list_next = list_del->next; @@ -209,10 +209,10 @@ badge_ipc_del_deffered_task( list_del = list_del->next; } while (list_del != NULL); - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; } -static void _do_deffered_task(void) { +static void _do_deferred_task(void) { task_list *list_do = NULL; task_list *list_temp = NULL; @@ -269,7 +269,7 @@ static void _master_started_cb_task(keynode_t *node, void *data) { if (badge_ipc_is_master_ready()) { - _do_deffered_task(); + _do_deferred_task(); } } @@ -387,10 +387,10 @@ static int _handler_service_register(pid_t pid, int handle, const struct packet if (!packet) { ERR("Packet is not valid\n"); - ret = BADGE_ERROR_INVALID_DATA; + ret = BADGE_ERROR_INVALID_PARAMETER; } else if (packet_get(packet, "i", &ret) != 1) { ERR("Packet is not valid\n"); - ret = BADGE_ERROR_INVALID_DATA; + ret = BADGE_ERROR_INVALID_PARAMETER; } else { if (ret == BADGE_ERROR_NONE) { badge_changed_cb_call(BADGE_ACTION_SERVICE_READY, NULL, 0); @@ -402,7 +402,7 @@ static int _handler_service_register(pid_t pid, int handle, const struct packet /*! * functions to initialize and register a monitor */ -static badge_error_e badge_ipc_monitor_register(void) +static int badge_ipc_monitor_register(void) { int ret; struct packet *packet; @@ -436,17 +436,18 @@ static badge_error_e badge_ipc_monitor_register(void) } ERR("register a service\n"); + com_core_packet_use_thread(1); s_info.server_fd = com_core_packet_client_init(s_info.socket_file, 0, service_table); if (s_info.server_fd < 0) { ERR("Failed to make a connection to the master\n"); - return BADGE_ERROR_IO; + return BADGE_ERROR_IO_ERROR; } packet = packet_create("service_register", ""); if (!packet) { ERR("Failed to build a packet\n"); - return BADGE_ERROR_IO; + return BADGE_ERROR_IO_ERROR; } ret = com_core_packet_async_send(s_info.server_fd, packet, 1.0, _handler_service_register, NULL); @@ -454,8 +455,8 @@ static badge_error_e badge_ipc_monitor_register(void) packet_destroy(packet); if (ret != 0) { com_core_packet_client_fini(s_info.server_fd); - s_info.server_fd = BADGE_ERROR_INVALID_DATA; - ret = BADGE_ERROR_IO; + s_info.server_fd = BADGE_ERROR_INVALID_PARAMETER; + ret = BADGE_ERROR_IO_ERROR; } else { ret = BADGE_ERROR_NONE; } @@ -464,21 +465,21 @@ static badge_error_e badge_ipc_monitor_register(void) return ret; } -badge_error_e badge_ipc_monitor_deregister(void) +int badge_ipc_monitor_deregister(void) { if (s_info.initialized == 0) { return BADGE_ERROR_NONE; } com_core_packet_client_fini(s_info.server_fd); - s_info.server_fd = BADGE_ERROR_INVALID_DATA; + s_info.server_fd = BADGE_ERROR_INVALID_PARAMETER; s_info.initialized = 0; return BADGE_ERROR_NONE; } -badge_error_e badge_ipc_monitor_init(void) +int badge_ipc_monitor_init(void) { int ret = BADGE_ERROR_NONE; @@ -494,7 +495,7 @@ badge_error_e badge_ipc_monitor_init(void) return ret; } -badge_error_e badge_ipc_monitor_fini(void) +int badge_ipc_monitor_fini(void) { int ret = BADGE_ERROR_NONE; @@ -509,7 +510,7 @@ badge_error_e badge_ipc_monitor_fini(void) } -badge_error_e badge_ipc_request_insert(const char *pkgname, const char *writable_pkg, const char *caller) { +int badge_ipc_request_insert(const char *pkgname, const char *writable_pkg, const char *caller) { int ret = 0; struct packet *packet; struct packet *result; @@ -524,7 +525,7 @@ badge_error_e badge_ipc_request_insert(const char *pkgname, const char *writable if (packet_get(result, "i", &ret) != 1) { ERR("Failed to get a result packet"); packet_unref(result); - return BADGE_ERROR_IO; + return BADGE_ERROR_IO_ERROR; } if (ret != BADGE_ERROR_NONE) { @@ -533,14 +534,18 @@ badge_error_e badge_ipc_request_insert(const char *pkgname, const char *writable } packet_unref(result); } else { - badge_ipc_is_master_ready(); - return BADGE_ERROR_SERVICE_NOT_READY; + if (badge_ipc_is_master_ready() == 1) { + return BADGE_ERROR_PERMISSION_DENIED; + } + else { + return BADGE_ERROR_SERVICE_NOT_READY; + } } return BADGE_ERROR_NONE; } -badge_error_e badge_ipc_request_delete(const char *pkgname, const char *caller) { +int badge_ipc_request_delete(const char *pkgname, const char *caller) { int ret = 0; struct packet *packet; struct packet *result; @@ -555,7 +560,7 @@ badge_error_e badge_ipc_request_delete(const char *pkgname, const char *caller) if (packet_get(result, "i", &ret) != 1) { ERR("Failed to get a result packet"); packet_unref(result); - return BADGE_ERROR_IO; + return BADGE_ERROR_IO_ERROR; } if (ret != BADGE_ERROR_NONE) { @@ -564,14 +569,18 @@ badge_error_e badge_ipc_request_delete(const char *pkgname, const char *caller) } packet_unref(result); } else { - badge_ipc_is_master_ready(); - return BADGE_ERROR_SERVICE_NOT_READY; + if (badge_ipc_is_master_ready() == 1) { + return BADGE_ERROR_PERMISSION_DENIED; + } + else { + return BADGE_ERROR_SERVICE_NOT_READY; + } } return BADGE_ERROR_NONE; } -badge_error_e badge_ipc_request_set_count(const char *pkgname, const char *caller, int count) { +int badge_ipc_request_set_count(const char *pkgname, const char *caller, int count) { int ret = 0; struct packet *packet; struct packet *result; @@ -586,7 +595,7 @@ badge_error_e badge_ipc_request_set_count(const char *pkgname, const char *calle if (packet_get(result, "i", &ret) != 1) { ERR("Failed to get a result packet"); packet_unref(result); - return BADGE_ERROR_IO; + return BADGE_ERROR_IO_ERROR; } if (ret != BADGE_ERROR_NONE) { @@ -595,14 +604,18 @@ badge_error_e badge_ipc_request_set_count(const char *pkgname, const char *calle } packet_unref(result); } else { - badge_ipc_is_master_ready(); - return BADGE_ERROR_SERVICE_NOT_READY; + if (badge_ipc_is_master_ready() == 1) { + return BADGE_ERROR_PERMISSION_DENIED; + } + else { + return BADGE_ERROR_SERVICE_NOT_READY; + } } return BADGE_ERROR_NONE; } -badge_error_e badge_ipc_request_set_display(const char *pkgname, const char *caller, int display_option) { +int badge_ipc_request_set_display(const char *pkgname, const char *caller, int display_option) { int ret = 0; struct packet *packet; struct packet *result; @@ -617,7 +630,7 @@ badge_error_e badge_ipc_request_set_display(const char *pkgname, const char *cal if (packet_get(result, "i", &ret) != 1) { ERR("Failed to get a result packet"); packet_unref(result); - return BADGE_ERROR_IO; + return BADGE_ERROR_IO_ERROR; } if (ret != BADGE_ERROR_NONE) { @@ -626,14 +639,18 @@ badge_error_e badge_ipc_request_set_display(const char *pkgname, const char *cal } packet_unref(result); } else { - badge_ipc_is_master_ready(); - return BADGE_ERROR_SERVICE_NOT_READY; + if (badge_ipc_is_master_ready() == 1) { + return BADGE_ERROR_PERMISSION_DENIED; + } + else { + return BADGE_ERROR_SERVICE_NOT_READY; + } } return BADGE_ERROR_NONE; } -badge_error_e badge_ipc_setting_property_set(const char *pkgname, const char *property, const char *value) +int badge_ipc_setting_property_set(const char *pkgname, const char *property, const char *value) { int status = 0; int ret = 0; @@ -650,7 +667,7 @@ badge_error_e badge_ipc_setting_property_set(const char *pkgname, const char *pr if (packet_get(result, "ii", &status, &ret) != 2) { ERR("Failed to get a result packet"); packet_unref(result); - return BADGE_ERROR_IO; + return BADGE_ERROR_IO_ERROR; } packet_unref(result); } else { @@ -661,7 +678,7 @@ badge_error_e badge_ipc_setting_property_set(const char *pkgname, const char *pr return status; } -badge_error_e badge_ipc_setting_property_get(const char *pkgname, const char *property, char **value) +int badge_ipc_setting_property_get(const char *pkgname, const char *property, char **value) { int status = 0; char *ret = NULL; @@ -678,7 +695,7 @@ badge_error_e badge_ipc_setting_property_get(const char *pkgname, const char *pr if (packet_get(result, "is", &status, &ret) != 2) { ERR("Failed to get a result packet"); packet_unref(result); - return BADGE_ERROR_IO; + return BADGE_ERROR_IO_ERROR; } if (status == BADGE_ERROR_NONE && ret != NULL) { *value = strdup(ret); diff --git a/src/badge_setting.c b/src/badge_setting.c index 749c778..def52a5 100755 --- a/src/badge_setting.c +++ b/src/badge_setting.c @@ -30,7 +30,6 @@ #include "badge_error.h" #include "badge_internal.h" #include "badge_ipc.h" -#include "badge_setting.h" #include "badge_db.h" #define SETTING_DB_TABLE "notification_setting" @@ -85,7 +84,7 @@ static const char *_get_prop_default_value(const char *property) } #endif -static badge_error_e _is_record_exist(const char *pkgname, sqlite3 *db) +static int _is_record_exist(const char *pkgname, sqlite3 *db) { sqlite3_stmt *stmt = NULL; int count = 0; @@ -94,10 +93,10 @@ static badge_error_e _is_record_exist(const char *pkgname, sqlite3 *db) int sqlret; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!db) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlbuf = sqlite3_mprintf("SELECT count(*) FROM %s WHERE " \ "appid = %Q", @@ -105,7 +104,7 @@ static badge_error_e _is_record_exist(const char *pkgname, sqlite3 *db) if (!sqlbuf) { ERR("fail to alloc sql query"); - return BADGE_ERROR_NO_MEMORY; + return BADGE_ERROR_OUT_OF_MEMORY; } sqlret = sqlite3_prepare_v2(db, sqlbuf, -1, &stmt, NULL); @@ -137,27 +136,27 @@ free_and_return: return result; } -EXPORT_API badge_error_e badge_setting_db_set(const char *pkgname, const char *property, const char *value) +EXPORT_API int badge_setting_db_set(const char *pkgname, const char *property, const char *value) { - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; sqlite3 *db = NULL; char *sqlbuf = NULL; int sqlret; const char *column = NULL; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!property) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!value) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; column = _get_prop_column(property); if (!column) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(SETTING_DB_FILE, &db, 0); if (sqlret != SQLITE_OK || !db) { @@ -176,7 +175,7 @@ EXPORT_API badge_error_e badge_setting_db_set(const char *pkgname, const char *p SETTING_DB_TABLE, column, value, pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -199,10 +198,10 @@ return_close_db: return result; } -EXPORT_API badge_error_e badge_setting_db_get(const char *pkgname, const char *property, char **value) +EXPORT_API int badge_setting_db_get(const char *pkgname, const char *property, char **value) { - badge_error_e ret = BADGE_ERROR_NONE; - badge_error_e result = BADGE_ERROR_NONE; + int ret = BADGE_ERROR_NONE; + int result = BADGE_ERROR_NONE; sqlite3 *db = NULL; char *sqlbuf = NULL; sqlite3_stmt *stmt = NULL; @@ -210,17 +209,17 @@ EXPORT_API badge_error_e badge_setting_db_get(const char *pkgname, const char *p const char *column = NULL; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!property) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!value) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; column = _get_prop_column(property); if (!column) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; sqlret = db_util_open(SETTING_DB_FILE, &db, 0); if (sqlret != SQLITE_OK || !db) { @@ -239,7 +238,7 @@ EXPORT_API badge_error_e badge_setting_db_get(const char *pkgname, const char *p column, SETTING_DB_TABLE, pkgname); if (!sqlbuf) { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } @@ -262,7 +261,7 @@ EXPORT_API badge_error_e badge_setting_db_get(const char *pkgname, const char *p *value = get_data; } else { ERR("fail to alloc query"); - result = BADGE_ERROR_NO_MEMORY; + result = BADGE_ERROR_OUT_OF_MEMORY; goto return_close_db; } } @@ -281,18 +280,18 @@ return_close_db: return result; } -EXPORT_API badge_error_e badge_setting_property_set(const char *pkgname, const char *property, const char *value) +EXPORT_API int badge_setting_property_set(const char *pkgname, const char *property, const char *value) { int ret = 0; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!property) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!value) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; ret = badge_ipc_setting_property_set(pkgname, property, value); if (ret != BADGE_ERROR_NONE) { @@ -302,18 +301,18 @@ EXPORT_API badge_error_e badge_setting_property_set(const char *pkgname, const c return BADGE_ERROR_NONE; } -EXPORT_API badge_error_e badge_setting_property_get(const char *pkgname, const char *property, char **value) +EXPORT_API int badge_setting_property_get(const char *pkgname, const char *property, char **value) { int ret = 0; if (!pkgname) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!property) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; if (!value) - return BADGE_ERROR_INVALID_DATA; + return BADGE_ERROR_INVALID_PARAMETER; ret = badge_ipc_setting_property_get(pkgname, property, value); if (ret != BADGE_ERROR_NONE) { |