SET(INSTALL_HEADERS_DEVEL
badge.h
- badge_setting.h
badge_error.h
+ badge_internal.h
)
SET(INSTALL_HEADERS_SERVICE_DEVEL
dbus-glib-1
vconf
com-core
+ capi-appfw-package-manager
+ db-util
)
FOREACH(flag ${pkgs_CFLAGS})
Name: badge
Description: Badge supporting library
-Version: @VERSION@
-Requires:
+Version: @VERSION@
+Requires: capi-base-common
Libs: -L${libdir} -lbadge
Cflags: -I${includedir}
/**
*
- * @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
* @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
- *
*/
/**
* @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;
}
}
* @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;
}
}
* @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;
}
}
* @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;
}
}
* @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;
}
}
* @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
...
{
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;
}
}
* @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;
}
}
* @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 */
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
}
#ifndef __BADGE_ERROR_DEF_H__
#define __BADGE_ERROR_DEF_H__
+#include <tizen.h>
+
#ifdef __cplusplus
extern "C" {
#endif
*/
/**
- * @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;
/**
#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__ */
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
}
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
}
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
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
%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
#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();
}
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();
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();
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();
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);
}
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);
}
#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);
}
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);
}
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);
}
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);
}
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);
#include <aul.h>
#include <sqlite3.h>
#include <db-util.h>
+#include <package_manager.h>
#include "badge_log.h"
#include "badge_error.h"
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;
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",
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);
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;
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",
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);
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);
}
-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);
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) {
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;
}
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) {
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;
}
badge->pkgname);
if (!sqlbuf) {
ERR("fail to alloc query");
- result = BADGE_ERROR_NO_MEMORY;
+ result = BADGE_ERROR_OUT_OF_MEMORY;
goto 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) {
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;
}
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;
}
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) {
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;
}
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);
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;
}
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) {
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;
}
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;
}
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);
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;
}
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();
bd = malloc(sizeof(struct _badge_cb_data));
if (!bd)
- return BADGE_ERROR_NO_MEMORY;
+ return BADGE_ERROR_OUT_OF_MEMORY;
bd->callback = callback;
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);
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);
}
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;
}
if (!badge) {
ERR("fail to alloc handle");
if (err)
- *err = BADGE_ERROR_NO_MEMORY;
+ *err = BADGE_ERROR_OUT_OF_MEMORY;
return NULL;
}
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;
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;
}
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);
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;
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;
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);
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);
/*!
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;
(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) {
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) {
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;
list_del = g_task_list;
if (list_del == NULL) {
- return BADGE_ERROR_INVALID_DATA;
+ return BADGE_ERROR_INVALID_PARAMETER;
}
while (list_del->prev != NULL) {
}
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;
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;
void *data) {
if (badge_ipc_is_master_ready()) {
- _do_deffered_task();
+ _do_deferred_task();
}
}
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);
/*!
* 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;
}
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);
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;
}
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;
return ret;
}
-badge_error_e badge_ipc_monitor_fini(void)
+int badge_ipc_monitor_fini(void)
{
int ret = BADGE_ERROR_NONE;
}
-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;
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) {
}
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;
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) {
}
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;
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) {
}
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;
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) {
}
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;
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 {
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;
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);
#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"
}
#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;
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",
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);
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) {
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;
}
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;
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) {
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;
}
*value = get_data;
} else {
ERR("fail to alloc query");
- result = BADGE_ERROR_NO_MEMORY;
+ result = BADGE_ERROR_OUT_OF_MEMORY;
goto 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) {
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) {