From 7fc92b2482344cd3995b144787069cf147473e0c Mon Sep 17 00:00:00 2001 From: Hurnjoo Lee Date: Tue, 6 Jan 2015 13:48:48 +0900 Subject: [PATCH] Merge tizen 2.3 source into tizen branch Change-Id: I489ed0f58fc1b3f3e7875197dd50ad73d4c94f76 Signed-off-by: Hurnjoo Lee --- .gitignore | 5 + AUTHORS | 2 - CMakeLists.txt | 17 +- LICENSE.APLv2.0 => LICENSE | 0 NOTICE | 3 - TC/_export_env.sh | 10 ++ TC/_export_target_env.sh | 9 + TC/clean.sh | 11 ++ TC/config | 3 + TC/push.sh | 13 ++ TC/run.sh | 15 ++ TC/testcase/Makefile | 26 +++ TC/testcase/tslist | 2 + TC/testcase/utc_badge.c | 384 ++++++++++++++++++++++++++++++++++++++++ TC/testcase/utc_badge_setting.c | 115 ++++++++++++ TC/tet_scen | 7 + TC/tetbuild.cfg | 5 + TC/tetclean.cfg | 5 + TC/tetexec.cfg | 5 + badge-service.pc.in | 2 +- badge.manifest | 16 ++ badge.pc.in | 4 +- badge.sql | 13 -- debian/changelog | 15 ++ debian/compat | 1 + debian/control | 25 +++ debian/dirs | 2 + debian/docs | 0 debian/libbadge-dev.install.in | 2 + debian/libbadge.install.in | 1 + debian/libbadge.postinst.in | 27 +++ debian/rules | 116 ++++++++++++ doc/badge_doc.h | 14 +- doc/doxygen.conf | 0 include/badge.h | 341 ++++++++++++++++++++++++----------- include/badge_db.h | 10 +- include/badge_error.h | 26 +-- include/badge_internal.h | 84 +++++++-- include/badge_ipc.h | 23 +-- include/badge_log.h | 8 +- include/badge_setting.h | 0 include/badge_setting_service.h | 4 +- packaging/badge.changes | 6 - packaging/badge.manifest | 5 - packaging/badge.spec | 117 ++++++++---- packaging/init_db.sh | 6 - src/badge.c | 88 +++++---- src/badge_db.c | 24 +-- src/badge_internal.c | 251 +++++++++++++------------- src/badge_ipc.c | 111 +++++++----- src/badge_setting.c | 62 ++++--- 51 files changed, 1544 insertions(+), 497 deletions(-) create mode 100644 .gitignore delete mode 100644 AUTHORS mode change 100755 => 100644 CMakeLists.txt rename LICENSE.APLv2.0 => LICENSE (100%) delete mode 100644 NOTICE create mode 100755 TC/_export_env.sh create mode 100755 TC/_export_target_env.sh create mode 100755 TC/clean.sh create mode 100644 TC/config create mode 100755 TC/push.sh create mode 100755 TC/run.sh create mode 100644 TC/testcase/Makefile create mode 100644 TC/testcase/tslist create mode 100644 TC/testcase/utc_badge.c create mode 100644 TC/testcase/utc_badge_setting.c create mode 100644 TC/tet_scen create mode 100644 TC/tetbuild.cfg create mode 100644 TC/tetclean.cfg create mode 100644 TC/tetexec.cfg create mode 100644 badge.manifest delete mode 100644 badge.sql create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/dirs create mode 100644 debian/docs create mode 100644 debian/libbadge-dev.install.in create mode 100644 debian/libbadge.install.in create mode 100644 debian/libbadge.postinst.in create mode 100644 debian/rules mode change 100755 => 100644 doc/badge_doc.h mode change 100755 => 100644 doc/doxygen.conf mode change 100755 => 100644 include/badge.h mode change 100755 => 100644 include/badge_db.h mode change 100755 => 100644 include/badge_error.h mode change 100755 => 100644 include/badge_ipc.h mode change 100755 => 100644 include/badge_setting.h mode change 100755 => 100644 include/badge_setting_service.h delete mode 100644 packaging/badge.changes delete mode 100644 packaging/badge.manifest mode change 100755 => 100644 packaging/badge.spec delete mode 100644 packaging/init_db.sh mode change 100755 => 100644 src/badge.c mode change 100755 => 100644 src/badge_db.c mode change 100755 => 100644 src/badge_internal.c mode change 100755 => 100644 src/badge_ipc.c mode change 100755 => 100644 src/badge_setting.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..61ba439 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +build.sh +build-stamp +cmake-tmp +configure-stamp +tmp diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 24aebc0..0000000 --- a/AUTHORS +++ /dev/null @@ -1,2 +0,0 @@ -youngsub ko -seung taek jung diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100755 new mode 100644 index 29ef9ba..8fd76fd --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,9 @@ SET(EXEC_PREFIX "\${prefix}") SET(PROJECT_NAME "${PROJECT_NAME}") SET(LIBDIR ${LIB_INSTALL_DIR}) SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}") +SET(DBDIR "/opt/dbspace") +SET(DBFILE ".${PROJECT_NAME}.db") +SET(DBPATH "${DBDIR}/${DBFILE}") SET(VERSION_MAJOR 0) SET(VERSION "${VERSION_MAJOR}.0.1") @@ -13,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 @@ -47,32 +50,36 @@ pkg_check_modules(pkgs REQUIRED dbus-glib-1 vconf com-core - libtzplatform-config + capi-appfw-package-manager + db-util ) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -SET(EXTRA_CFLAGS "${EXTRA_CFLAGS}") +SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -g -Wall -O2") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") ADD_DEFINITIONS("-DBADGE_USE_DLOG") +ADD_DEFINITIONS("-DDBDIR=\"${DBDIR}\"") +ADD_DEFINITIONS("-DDBFILE=\"${DBFILE}\"") +ADD_DEFINITIONS("-DBADGE_DB_PATH=\"${DBPATH}\"") FOREACH(lib_file ${SUBMODULES_SO}) ADD_LIBRARY(${lib_file} SHARED ${SRCS}) TARGET_LINK_LIBRARIES(${lib_file} ${pkgs_LDFLAGS}) SET_TARGET_PROPERTIES(${lib_file} PROPERTIES SOVERSION ${VERSION_MAJOR}) SET_TARGET_PROPERTIES(${lib_file} PROPERTIES VERSION ${VERSION}) - INSTALL(TARGETS ${lib_file} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) + INSTALL(TARGETS ${lib_file} DESTINATION ${LIBDIR} COMPONENT RuntimeLibraries) ENDFOREACH(lib_file) FOREACH(pcfile ${SUBMODULES_DEVEL}) CONFIGURE_FILE(${pcfile}.pc.in ${pcfile}.pc @ONLY) SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${pcfile}.pc") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pcfile}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pcfile}.pc DESTINATION ${LIBDIR}/pkgconfig) ENDFOREACH(pcfile) FOREACH(hfile ${INSTALL_HEADERS_DEVEL}) diff --git a/LICENSE.APLv2.0 b/LICENSE similarity index 100% rename from LICENSE.APLv2.0 rename to LICENSE diff --git a/NOTICE b/NOTICE deleted file mode 100644 index ccdad52..0000000 --- a/NOTICE +++ /dev/null @@ -1,3 +0,0 @@ -Copyright (c) Samsung Electronics Co., Ltd. All rights reserved. -Except as noted, this software is licensed under Apache License, Version 2. -Please, see the LICENSE file for Apache License terms and conditions. diff --git a/TC/_export_env.sh b/TC/_export_env.sh new file mode 100755 index 0000000..7a317f8 --- /dev/null +++ b/TC/_export_env.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +source ./config + +export TET_INSTALL_PATH=$TET_INSTALL_HOST_PATH # tetware root path +#export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-simulator # tetware target path +export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target # tetware target path +export PATH=$TET_TARGET_PATH/bin:$PATH +export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH +export TET_ROOT=$TET_TARGET_PATH diff --git a/TC/_export_target_env.sh b/TC/_export_target_env.sh new file mode 100755 index 0000000..5e005cf --- /dev/null +++ b/TC/_export_target_env.sh @@ -0,0 +1,9 @@ +#!/bin/sh +. ./config + +export TET_INSTALL_PATH=$TET_INSTALL_TARGET_PATH # path to path +#export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-simulator +export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target +export PATH=$TET_TARGET_PATH/bin:$PATH +export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH +export TET_ROOT=$TET_TARGET_PATH diff --git a/TC/clean.sh b/TC/clean.sh new file mode 100755 index 0000000..29743e0 --- /dev/null +++ b/TC/clean.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +. ./_export_env.sh # setting environment variables + +export TET_SUITE_ROOT=`pwd` +RESULT_DIR=results + +tcc -c -p ./ # executing tcc, with clean option (-c) +rm -r $RESULT_DIR +rm -r tet_tmp_dir +rm testcase/tet_captured diff --git a/TC/config b/TC/config new file mode 100644 index 0000000..e31ce9b --- /dev/null +++ b/TC/config @@ -0,0 +1,3 @@ +PKG_NAME=badge +TET_INSTALL_HOST_PATH=/var/tmp/dts_fw/TC/TETware +TET_INSTALL_TARGET_PATH=/opt/home/$PKG_NAME/TETware diff --git a/TC/push.sh b/TC/push.sh new file mode 100755 index 0000000..5eb9510 --- /dev/null +++ b/TC/push.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +. ./config + +TC_PATH=/opt/home/$PKG_NAME + +echo $TC_PATH + +sdb shell "mkdir -p $TC_PATH" + +sdb push . $TC_PATH + + diff --git a/TC/run.sh b/TC/run.sh new file mode 100755 index 0000000..cec5778 --- /dev/null +++ b/TC/run.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +source ./_export_target_env.sh + +export TET_SUITE_ROOT=`pwd` +FILE_NAME_EXTENSION=`date +%s` + +RESULT_DIR=results +HTML_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.html +JOURNAL_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.journal + +mkdir -p $RESULT_DIR + +tcc -e -j $JOURNAL_RESULT -p ./ +grw -c 7 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/testcase/Makefile b/TC/testcase/Makefile new file mode 100644 index 0000000..2f5ca3d --- /dev/null +++ b/TC/testcase/Makefile @@ -0,0 +1,26 @@ +include ../config + +CC ?= gcc + +C_FILES = $(shell ls *.c) + +PKGS = $(PKG_NAME) +PKGS += glib-2.0 +LDFLAGS = `pkg-config --libs $(PKGS)` +LDFLAGS += $(TET_ROOT)/lib/tet3/tcm_s.o +LDFLAGS += -L$(TET_ROOT)/lib/tet3 -ltcm_s +LDFLAGS += -L$(TET_ROOT)/lib/tet3 -lapi_s + +CFLAGS = -I. `pkg-config --cflags $(PKGS)` +CFLAGS += -I$(TET_ROOT)/inc/tet3 +CFLAGS += -Wall + +TCS := $(shell ls -1 *.c | cut -d. -f1) + +all: $(TCS) + +%: %.c + $(CC) -o $@ $< $(CFLAGS) $(LDFLAGS) + +clean: + rm -f $(TCS) diff --git a/TC/testcase/tslist b/TC/testcase/tslist new file mode 100644 index 0000000..dc99875 --- /dev/null +++ b/TC/testcase/tslist @@ -0,0 +1,2 @@ +/testcase/utc_badge +/testcase/utc_badge_setting \ No newline at end of file diff --git a/TC/testcase/utc_badge.c b/TC/testcase/utc_badge.c new file mode 100644 index 0000000..b3667d2 --- /dev/null +++ b/TC/testcase/utc_badge.c @@ -0,0 +1,384 @@ +/* + * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define TEST_PKG "org.tizen.tetware" + +enum { + POSITIVE_TC_IDX = 0x01, + NEGATIVE_TC_IDX, +}; + +static void startup(void); +static void cleanup(void); + +static void utc_badge_create_n(void); +static void utc_badge_create_p(void); +static void utc_badge_remove_n(void); +static void utc_badge_remove_p(void); +static void utc_badge_set_count_n(void); +static void utc_badge_set_count_p(void); +static void utc_badge_get_count_n(void); +static void utc_badge_get_count_p(void); +static void utc_badge_set_display_n(void); +static void utc_badge_set_display_p(void); +static void utc_badge_get_display_n(void); +static void utc_badge_get_display_p(void); +static void utc_badge_is_existing_n(void); +static void utc_badge_is_existing_p(void); +static void utc_badge_foreach_existed_n(void); +static void utc_badge_foreach_existed_p(void); +static void utc_badge_register_changed_cb_n(void); +static void utc_badge_register_changed_cb_p(void); +static void utc_badge_unregister_changed_n(void); +static void utc_badge_unregister_changed_p(void); + +#define TEST_PKG "org.tizen.tetware" + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +struct tet_testlist tet_testlist[] = { + {utc_badge_create_n , NEGATIVE_TC_IDX}, + {utc_badge_create_p, POSITIVE_TC_IDX}, + {utc_badge_remove_n , NEGATIVE_TC_IDX}, + {utc_badge_remove_p, POSITIVE_TC_IDX}, + {utc_badge_set_count_n , NEGATIVE_TC_IDX}, + {utc_badge_set_count_p, POSITIVE_TC_IDX}, + {utc_badge_get_count_n , NEGATIVE_TC_IDX}, + {utc_badge_get_count_p, POSITIVE_TC_IDX}, + {utc_badge_set_display_n , NEGATIVE_TC_IDX}, + {utc_badge_set_display_p, POSITIVE_TC_IDX}, + {utc_badge_get_display_n , NEGATIVE_TC_IDX}, + {utc_badge_get_display_p, POSITIVE_TC_IDX}, + {utc_badge_is_existing_n , NEGATIVE_TC_IDX}, + {utc_badge_is_existing_p, POSITIVE_TC_IDX}, + {utc_badge_foreach_existed_n , NEGATIVE_TC_IDX}, + {utc_badge_foreach_existed_p, POSITIVE_TC_IDX}, + {utc_badge_register_changed_cb_n , NEGATIVE_TC_IDX}, + {utc_badge_register_changed_cb_p, POSITIVE_TC_IDX}, + {utc_badge_unregister_changed_n , NEGATIVE_TC_IDX}, + {utc_badge_unregister_changed_p, POSITIVE_TC_IDX}, + { NULL, 0 }, +}; + +static void _badge_foreach_cb(const char *pkgname, unsigned int count, void *data) { + +} + +static void _badge_changed_cb(unsigned int action, const char *pkgname, + unsigned int count, void *data) { + +} + +static void startup(void) +{ + /* start of TC */ + tet_printf("\n TC start"); + badge_remove(TEST_PKG); +} + + +static void cleanup(void) +{ + /* end of TC */ + tet_printf("\n TC end"); +} + +/** + * @brief Negative test case of badge_create() + */ +static void utc_badge_create_n(void) +{ + int ret; + + ret = badge_create(NULL, NULL); + + dts_check_eq("badge_create", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_create() + */ +static void utc_badge_create_p(void) +{ + int ret; + + ret = badge_create(TEST_PKG, TEST_PKG); + + dts_check_eq("badge_create", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + + +/** + * @brief Negative test case of badge_remove() + */ +static void utc_badge_remove_n(void) +{ + int ret; + + ret = badge_remove(NULL); + + dts_check_eq("badge_remove", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_remove() + */ +static void utc_badge_remove_p(void) +{ + int ret; + + ret = badge_create(TEST_PKG, TEST_PKG); + ret = badge_remove(TEST_PKG); + + dts_check_eq("badge_create", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + +/** + * @brief Negative test case of badge_set_count() + */ +static void utc_badge_set_count_n(void) +{ + int ret; + + ret = badge_set_count(NULL, 0); + + dts_check_eq("badge_set_count", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_set_count() + */ +static void utc_badge_set_count_p(void) +{ + int ret; + + ret = badge_create(TEST_PKG, TEST_PKG); + ret = badge_set_count(TEST_PKG, 1); + + dts_check_eq("badge_set_count", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + + +/** + * @brief Negative test case of badge_get_count() + */ +static void utc_badge_get_count_n(void) +{ + int ret; + + ret = badge_get_count(NULL, NULL); + + dts_check_eq("badge_get_count", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_get_count() + */ +static void utc_badge_get_count_p(void) +{ + int ret; + int count = 0; + + ret = badge_create(TEST_PKG, TEST_PKG); + ret = badge_set_count(TEST_PKG, 1); + ret = badge_get_count(TEST_PKG, &count); + + dts_check_eq("badge_get_count", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + +/** + * @brief Negative test case of badge_set_display() + */ +static void utc_badge_set_display_n(void) +{ + int ret; + + ret = badge_set_display(NULL, 0); + + dts_check_eq("badge_set_display", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_set_display() + */ +static void utc_badge_set_display_p(void) +{ + int ret; + int count = 0; + + ret = badge_create(TEST_PKG, TEST_PKG); + ret = badge_set_count(TEST_PKG, 1); + ret = badge_set_display(TEST_PKG, 1); + + dts_check_eq("badge_set_display", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + +/** + * @brief Negative test case of badge_get_display() + */ +static void utc_badge_get_display_n(void) +{ + int ret; + + ret = badge_get_display(NULL, NULL); + + dts_check_eq("badge_get_display", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_get_display() + */ +static void utc_badge_get_display_p(void) +{ + int ret; + int count = 0; + + ret = badge_create(TEST_PKG, TEST_PKG); + ret = badge_set_count(TEST_PKG, 1); + ret = badge_get_display(TEST_PKG, &count); + + dts_check_eq("badge_get_display", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + +/** + * @brief Negative test case of badge_is_existing() + */ +static void utc_badge_is_existing_n(void) +{ + int ret; + + ret = badge_is_existing(NULL, NULL); + + dts_check_eq("badge_is_existing", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_is_existing() + */ +static void utc_badge_is_existing_p(void) +{ + int ret; + int is_existing; + + ret = badge_create(TEST_PKG, TEST_PKG); + ret = badge_is_existing(TEST_PKG, &is_existing); + + dts_check_eq("badge_is_existing", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + +/** + * @brief Negative test case of badge_foreach_existed() + */ +static void utc_badge_foreach_existed_n(void) +{ + int ret; + + ret = badge_foreach_existed(NULL, NULL); + + dts_check_eq("badge_foreach_existed", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_foreach_existed() + */ +static void utc_badge_foreach_existed_p(void) +{ + int ret; + + ret = badge_create(TEST_PKG, TEST_PKG); + ret = badge_foreach_existed(_badge_foreach_cb, NULL); + + dts_check_eq("badge_foreach_existed", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + +/** + * @brief Negative test case of badge_register_changed_cb() + */ +static void utc_badge_register_changed_cb_n(void) +{ + int ret; + + ret = badge_register_changed_cb(NULL, NULL); + + dts_check_eq("badge_register_changed_cb", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_register_changed_cb() + */ +static void utc_badge_register_changed_cb_p(void) +{ + int ret; + + ret = badge_register_changed_cb(_badge_changed_cb, NULL); + + dts_check_eq("badge_register_changed_cb", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} + +/** + * @brief Negative test case of badge_unregister_changed() + */ +static void utc_badge_unregister_changed_n(void) +{ + int ret; + + ret = badge_unregister_changed_cb(NULL); + + dts_check_eq("badge_unregister_changed_cb", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_unregister_changed() + */ +static void utc_badge_unregister_changed_p(void) +{ + int ret; + + ret = badge_register_changed_cb(_badge_changed_cb, NULL); + ret = badge_unregister_changed_cb(_badge_changed_cb); + + dts_check_eq("badge_unregister_changed_cb", ret, BADGE_ERROR_NONE, + "Must return BADGE_ERROR_NONE in case of invalid parameter"); +} diff --git a/TC/testcase/utc_badge_setting.c b/TC/testcase/utc_badge_setting.c new file mode 100644 index 0000000..179ace3 --- /dev/null +++ b/TC/testcase/utc_badge_setting.c @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define TEST_PKG "org.tizen.tetware" + +enum { + POSITIVE_TC_IDX = 0x01, + NEGATIVE_TC_IDX, +}; + +static void startup(void); +static void cleanup(void); + +static void utc_badge_setting_property_set_n(void); +static void utc_badge_setting_property_set_p(void); +static void utc_badge_setting_property_get_n(void); +static void utc_badge_setting_property_get_p(void); + +#define TEST_PKG "org.tizen.tetware" + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +struct tet_testlist tet_testlist[] = { + {utc_badge_setting_property_set_n, NEGATIVE_TC_IDX}, + {utc_badge_setting_property_set_p, POSITIVE_TC_IDX}, + {utc_badge_setting_property_get_n, NEGATIVE_TC_IDX}, + {utc_badge_setting_property_get_p, POSITIVE_TC_IDX}, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ + tet_printf("\n TC start"); +} + + +static void cleanup(void) +{ + /* end of TC */ + tet_printf("\n TC end"); +} + +/** + * @brief Negative test case of badge_setting_property_set() + */ +static void utc_badge_setting_property_set_n(void) +{ + int ret; + + ret = badge_setting_property_set(NULL, NULL, NULL); + dts_check_eq("badge_setting_property_set", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_setting_property_set() + */ +static void utc_badge_setting_property_set_p(void) +{ + int ret; + + ret = badge_setting_property_set(TEST_PKG, "OPT_BADGE", "ON"); + /*Invalid parameter test*/ + dts_check_ne("badge_setting_property_set", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_NONE in case of valid parameter"); +} + +/** + * @brief Negative test case of badge_setting_property_get() + */ +static void utc_badge_setting_property_get_n(void) +{ + int ret; + + ret = badge_setting_property_get(NULL, NULL, NULL); + dts_check_eq("badge_setting_property_get", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_INVALID_DATA in case of invalid parameter"); +} + +/** + * @brief Positive test case of badge_setting_property_get() + */ +static void utc_badge_setting_property_get_p(void) +{ + int ret; + char *value = NULL; + + ret = badge_setting_property_get(TEST_PKG, "OPT_BADGE", &value); + dts_check_ne("badge_setting_property_get", ret, BADGE_ERROR_INVALID_DATA, + "Must return BADGE_ERROR_NONE in case of valid parameter"); +} diff --git a/TC/tet_scen b/TC/tet_scen new file mode 100644 index 0000000..03f029a --- /dev/null +++ b/TC/tet_scen @@ -0,0 +1,7 @@ +all + ^TEST +##### Scenarios for TEST ##### + +# Test scenario +TEST + :include:/testcase/tslist diff --git a/TC/tetbuild.cfg b/TC/tetbuild.cfg new file mode 100644 index 0000000..f7eda55 --- /dev/null +++ b/TC/tetbuild.cfg @@ -0,0 +1,5 @@ +TET_OUTPUT_CAPTURE=True # capture option for build operation checking +TET_BUILD_TOOL=make # build with using make command +TET_BUILD_FILE=-f Makefile # execution file (Makefile) for build +TET_API_COMPLIANT=True # use TET API in Test Case ? +TET_PASS_TC_NAME=True # report passed TC name in Journal file? diff --git a/TC/tetclean.cfg b/TC/tetclean.cfg new file mode 100644 index 0000000..2a0477a --- /dev/null +++ b/TC/tetclean.cfg @@ -0,0 +1,5 @@ +TET_OUTPUT_CAPTURE=True # capture option +TET_CLEAN_TOOL= make clean # clean tool +TET_CLEAN_FILE= Makefile # file for clean +TET_API_COMPLIANT=True # TET API useage +TET_PASS_TC_NAME=True # showing name , passed TC diff --git a/TC/tetexec.cfg b/TC/tetexec.cfg new file mode 100644 index 0000000..ef3e452 --- /dev/null +++ b/TC/tetexec.cfg @@ -0,0 +1,5 @@ +TET_OUTPUT_CAPTURE=True # capturing execution or not +TET_EXEC_TOOL= # ex) exec : execution tool set up/ Optional +TET_EXEC_FILE= # ex) exectool : execution file/ Optional +TET_API_COMPLIANT=True # Test case or Tool usesTET API? +TET_PASS_TC_NAME=True # showing Passed TC name ? diff --git a/badge-service.pc.in b/badge-service.pc.in index e9c9001..7864b50 100644 --- a/badge-service.pc.in +++ b/badge-service.pc.in @@ -3,7 +3,7 @@ exec_prefix=@EXEC_PREFIX@ libdir=@LIBDIR@ includedir=@INCLUDEDIR@/service -Name: badge-service +Name: badge Description: Badge supporting library Version: @VERSION@ Requires: diff --git a/badge.manifest b/badge.manifest new file mode 100644 index 0000000..b20b569 --- /dev/null +++ b/badge.manifest @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + diff --git a/badge.pc.in b/badge.pc.in index 3ab8330..b083171 100644 --- 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/badge.sql b/badge.sql deleted file mode 100644 index c2a9cb9..0000000 --- a/badge.sql +++ /dev/null @@ -1,13 +0,0 @@ -PRAGMA journal_mode = PERSIST; - create table if not exists badge_data ( - pkgname TEXT NOT NULL, - writable_pkgs TEXT, - badge INTEGER default 0, - rowid INTEGER PRIMARY KEY AUTOINCREMENT, - UNIQUE (pkgname) - ); - create table if not exists badge_option ( - pkgname TEXT NOT NULL, - display INTEGER default 1, - UNIQUE (pkgname) - ); diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..19f748f --- /dev/null +++ b/debian/changelog @@ -0,0 +1,15 @@ +badge (0.0.1-2) unstable; urgency=low + + * remove group_id + * Git: slp/pkgs/b/badge + * Tag: badge_0.0.1-2 + + -- Jeonghoon Park Thu, 31 May 2012 15:33:36 +0900 + +badge (0.0.1-1) unstable; urgency=low + + * Initial Release. + * Git: slp/pkgs/b/badge + * Tag: badge_0.0.1-1 + + -- Jeonghoon Park Mon, 27 Feb 2012 14:14:00 +0900 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..bddd5e7 --- /dev/null +++ b/debian/control @@ -0,0 +1,25 @@ +Source: badge +Section: libs +Priority: optional +Maintainer: Jeonghoon Park , Young-joo Park +Build-Depends: debhelper (>= 5), dlog-dev, libaul-1-dev, libdbus-1-dev, libdbus-glib-1-dev +Standards-Version: 3.7.2 + +Package: libbadge +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Badge supporting library (shared object) + +Package: libbadge-dev +Section: libs +Architecture: any +Depends: libbadge (= ${Source-Version}) +Description: Badge supporting library (development) + +Package: libbadge-dbg +Section: debug +Architecture: any +Depends: ${misc:Depends}, libbadge (= ${Source-Version}) +Description: Badge supporting library (unstripped) + diff --git a/debian/dirs b/debian/dirs new file mode 100644 index 0000000..ca882bb --- /dev/null +++ b/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/sbin diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..e69de29 diff --git a/debian/libbadge-dev.install.in b/debian/libbadge-dev.install.in new file mode 100644 index 0000000..1bc0c16 --- /dev/null +++ b/debian/libbadge-dev.install.in @@ -0,0 +1,2 @@ +@PREFIX@/include/@PROJECT_NAME@/*.h +@PREFIX@/lib/pkgconfig/*.pc diff --git a/debian/libbadge.install.in b/debian/libbadge.install.in new file mode 100644 index 0000000..bf766f0 --- /dev/null +++ b/debian/libbadge.install.in @@ -0,0 +1 @@ +@PREFIX@/lib/*.so* diff --git a/debian/libbadge.postinst.in b/debian/libbadge.postinst.in new file mode 100644 index 0000000..d80c0ea --- /dev/null +++ b/debian/libbadge.postinst.in @@ -0,0 +1,27 @@ +#!/bin/sh + +if [ ! -d @DATADIR@/dbspace ] +then + mkdir -p @DATADIR@/dbspace +fi + +if [ ! -f @DATADIR@/dbspace/.@PROJECT_NAME@.db ] +then + sqlite3 @DATADIR@/dbspace/.@PROJECT_NAME@.db 'PRAGMA journal_mode = PERSIST; + create table if not exists badge_data ( + pkgname TEXT NOT NULL, + writable_pkgs TEXT, + badge INTEGER default 0, + rowid INTEGER PRIMARY KEY AUTOINCREMENT, + UNIQUE (pkgname) + ); + ' +fi + +if [ ${USER} = "root" ] +then + chown root:5000 @DATADIR@/dbspace/.@PROJECT_NAME@.db + chown root:5000 @DATADIR@/dbspace/.@PROJECT_NAME@.db-journal +fi +chmod 660 @DATADIR@/dbspace/.@PROJECT_NAME@.db +chmod 660 @DATADIR@/dbspace/.@PROJECT_NAME@.db-journal diff --git a/debian/rules b/debian/rules new file mode 100644 index 0000000..68ad4f3 --- /dev/null +++ b/debian/rules @@ -0,0 +1,116 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +CFLAGS ?= -Wall -Werror -Winline +LDFLAGS ?= +PREFIX ?= /usr +DATADIR ?= /opt +PROJECT_NAME ?= badge + +BUILDDIR ?= $(CURDIR)/cmake-tmp + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed -lm + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + mkdir -p $(BUILDDIR) && cd $(BUILDDIR) && CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. -DCMAKE_INSTALL_PREFIX=$(PREFIX) + + touch configure-stamp + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + cd $(BUILDDIR) && $(MAKE) + #docbook-to-man debian/wavplayer.sgml > wavplayer.1 + + for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ + cat $$f > $${f%.in}; \ + sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \ + sed -i -e "s#@PROJECT_NAME@#$(PROJECT_NAME)#g" $${f%.in}; \ + sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \ + done + + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + rm -rf $(BUILDDIR) + #rm -rf CMakeCache.txt CMakeFiles cmake_install.cmake Makefile install_manifest.txt + + for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ + rm -f $${f%.in}; \ + done + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/wavplayer. + cd $(BUILDDIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples + dh_install --sourcedir=debian/tmp +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + dh_strip --dbg-package=libbadge-dbg + dh_compress + dh_fixperms +# dh_perl + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/doc/badge_doc.h b/doc/badge_doc.h old mode 100755 new mode 100644 index 31fb372..62e157f --- 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 - * \#include - * @section BADGE_TYPE_MODULE_OVERVIEW Overview - * Type defines and enumerations for Badge APIs - * */ diff --git a/doc/doxygen.conf b/doc/doxygen.conf old mode 100755 new mode 100644 diff --git a/include/badge.h b/include/badge.h old mode 100755 new mode 100644 index 347dcad..0b742ea --- 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_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_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_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_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_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_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 old mode 100755 new mode 100644 index 1d490c5..75d6281 --- 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 old mode 100755 new mode 100644 index 89d1abb..9fa5d98 --- 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 + #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 100644 --- 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 +... +{ + 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 old mode 100755 new mode 100644 index 5a6d3e3..2fc87a4 --- a/include/badge_ipc.h +++ b/include/badge_ipc.h @@ -3,7 +3,8 @@ * * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. * - * Contact: Seungtaek Chung , Mi-Ju Lee , Xi Zhichan + * Contact: Youngjoo Park , + * Seungtaek Chung , Youngsub Ko * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. @@ -32,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_log.h b/include/badge_log.h index 134eb2c..58a3d8c 100644 --- a/include/badge_log.h +++ b/include/badge_log.h @@ -34,22 +34,22 @@ #define DBG(fmt , args...) \ do { \ - LOGD("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ + SECURE_LOGD("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ } while (0) #define INFO(fmt , args...) \ do { \ - LOGI("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ + SECURE_LOGI("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ } while (0) #define WARN(fmt , args...) \ do { \ - LOGI("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ + SECURE_LOGW("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ } while (0) #define ERR(fmt , args...) \ do { \ - LOGI("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ + SECURE_LOGE("[%s : %d] "fmt"\n", __func__, __LINE__, ##args); \ } while (0) #else /* BADGE_USE_DLOG */ diff --git a/include/badge_setting.h b/include/badge_setting.h old mode 100755 new mode 100644 diff --git a/include/badge_setting_service.h b/include/badge_setting_service.h old mode 100755 new mode 100644 index 9b452a7..492af84 --- 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.changes b/packaging/badge.changes deleted file mode 100644 index 99c4a1e..0000000 --- a/packaging/badge.changes +++ /dev/null @@ -1,6 +0,0 @@ -* Tue Jun 25 2013 Anas Nashif accepted/tizen/20130613.135716@3df4bc8 -- Cleanup packaging and install database in %install - -* Thu May 30 2013 Anas Nashif submit/tizen/20130517.044805@581dd0c -- Remove license/group placeholders - diff --git a/packaging/badge.manifest b/packaging/badge.manifest deleted file mode 100644 index 017d22d..0000000 --- a/packaging/badge.manifest +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packaging/badge.spec b/packaging/badge.spec old mode 100755 new mode 100644 index 67ee604..0c1a028 --- a/packaging/badge.spec +++ b/packaging/badge.spec @@ -1,79 +1,118 @@ +%define DBDIR "/opt/dbspace" Name: badge -Summary: Badge library -Version: 0.0.5 -Release: 0 -Group: Application Framework/Libraries +Summary: badge library +Version: 0.0.15 +Release: 1 +Group: TBD License: Apache-2.0 Source0: %{name}-%{version}.tar.gz -Source1001: %{name}.manifest -Source1002: init_db.sh BuildRequires: pkgconfig(aul) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(vconf) BuildRequires: pkgconfig(com-core) -BuildRequires: pkgconfig(sqlite3) -BuildRequires: pkgconfig(libtzplatform-config) +BuildRequires: pkgconfig(capi-appfw-package-manager) +BuildRequires: pkgconfig(db-util) BuildRequires: cmake - +Requires(post): /sbin/ldconfig +requires(postun): /sbin/ldconfig %description -Badge library. +Client/Server library for updating badge information + +%prep +%setup -q %package devel -Summary: Badge library (devel) -Group: Application Framework/Development -Requires: %{name} = %{version}-%{release} +Summary: Badge library (devel) +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} %description devel Development files needed to build software that needs to system a system badge. %package service-devel -Summary: Badge service library (service-devel) -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} +Summary: Badge library (service-devel) +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} %description service-devel Development files needed to build badge service -%prep -%setup -q -cp %{SOURCE1001} . - %build +%if 0%{?tizen_build_binary_release_type_eng} +export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE" +export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE" +%endif +%if 0%{?sec_build_binary_debug_enable} +export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" +export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" +%endif +export LDFLAGS+="-Wl,--rpath=%{_libdir} -Wl,--as-needed" %cmake . make %{?jobs:-j%jobs} %install %make_install -install -D -m 0640 %{name}.sql %{buildroot}%{TZ_SYS_SHARE}/%{name}/ressources/%{name}.sql -install -D -m 0750 %{SOURCE1002} %{buildroot}%{TZ_SYS_SHARE}/%{name}/ressources/init_db.sh -%post -p /sbin/ldconfig -n %{name} +mkdir -p %{buildroot}/usr/share/license +cp -f LICENSE %{buildroot}/usr/share/license/%{name} + + +%post +/sbin/ldconfig + +if [ ! -d %{DBDIR} ] +then + mkdir -p %{DBDIR} +fi + +if [ ! -f %{DBDIR}/.%{name}.db ] +then + sqlite3 %{DBDIR}/.%{name}.db 'PRAGMA journal_mode = PERSIST; + create table if not exists badge_data ( + pkgname TEXT NOT NULL, + writable_pkgs TEXT, + badge INTEGER default 0, + rowid INTEGER PRIMARY KEY AUTOINCREMENT, + UNIQUE (pkgname) + ); + create table if not exists badge_option ( + pkgname TEXT NOT NULL, + display INTEGER default 1, + UNIQUE (pkgname) + ); + ' +fi + +chown :5000 %{DBDIR}/.%{name}.db +chown :5000 %{DBDIR}/.%{name}.db-journal +chmod 640 %{DBDIR}/.%{name}.db +chmod 640 %{DBDIR}/.%{name}.db-journal +if [ -f /usr/lib/rpm-plugins/msm.so ] +then + chsmack -a 'badge::db' %{DBDIR}/.%{name}.db* +fi -%postun -p /sbin/ldconfig -n %{name} +%postun -p /sbin/ldconfig -%files -n %{name} -%manifest %{name}.manifest -%license LICENSE.APLv2.0 +%files +%manifest badge.manifest %defattr(-,root,root,-) -%{_libdir}/libbadge.so.* -%{TZ_SYS_SHARE}/%{name} -%attr(640,root,%{TZ_SYS_USER_GROUP}) %{TZ_SYS_SHARE}/%{name}/ressources/%{name}.sql -%attr(750,root,%{TZ_SYS_USER_GROUP}) %{TZ_SYS_SHARE}/%{name}/ressources/init_db.sh +%{_libdir}/libbadge.so* +/usr/share/license/%{name} %files devel -%manifest %{name}.manifest %defattr(-,root,root,-) -%{_includedir}/%{name}/badge.h -%{_includedir}/%{name}/badge_error.h -%{_includedir}/%{name}/badge_setting.h -%{_libdir}/libbadge.so +%{_includedir}/badge/badge.h +%{_includedir}/badge/badge_error.h +%{_includedir}/badge/badge_internal.h %{_libdir}/pkgconfig/%{name}.pc %files service-devel -%manifest %{name}.manifest %defattr(-,root,root,-) -%{_includedir}/%{name}/service/badge_db.h -%{_includedir}/%{name}/service/badge_setting_service.h +%{_includedir}/badge/service/badge_db.h +%{_includedir}/badge/service/badge_setting_service.h %{_libdir}/pkgconfig/badge-service.pc diff --git a/packaging/init_db.sh b/packaging/init_db.sh deleted file mode 100644 index d480bc1..0000000 --- a/packaging/init_db.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -source /etc/tizen-platform.conf - -sqlite3 $TZ_USER_DB/.badge.db < $TZ_SYS_SHARE/badge/ressources/badge.sql -chmod 600 $TZ_USER_DB/.badge.db diff --git a/src/badge.c b/src/badge.c old mode 100755 new mode 100644 index 7af551a..5de4010 --- 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 old mode 100755 new mode 100644 index e95e9c6..b92bd28 --- 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 old mode 100755 new mode 100644 index 6d77eaa..5fca1a6 --- a/src/badge_internal.c +++ b/src/badge_internal.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include @@ -32,9 +31,7 @@ #include #include #include - -/* For multi-user support */ -#include +#include #include "badge_log.h" #include "badge_error.h" @@ -46,11 +43,7 @@ #define BADGE_TABLE_NAME "badge_data" #define BADGE_OPTION_TABLE_NAME "badge_option" -#define BADGE_CHANGED_NOTI "badge_changed" - -#define BADGE_DB_PATH tzplatform_mkpath(TZ_USER_DB, "badge.db") - -#define SCRIPT_INIT_DB tzplatform_mkpath(TZ_SYS_SHARE, "badge/resources/init_db.sh") +#define BADGE_CHANGED_NOTI "badge_changed" struct _badge_h { char *pkgname; @@ -64,30 +57,6 @@ struct _badge_cb_data { static GList *g_badge_cb_list; -static int db_util_open_wrapper(sqlite3 *db) -{ - static int init_db = 1; - struct stat sts; - int sqlret, ret; - - /* Check if the DB exists */ - if(init_db) { - /* If the DB doesn't exist, create it and initialize it */ - ret = stat(BADGE_DB_PATH, &sts); - if (ret == -1 && errno == ENOENT) { - DBG("DB %s doesn't exist, it needs to be created and \ - initialized, calling %s", BADGE_DB_PATH, SCRIPT_INIT_DB); - system(SCRIPT_INIT_DB); - } - init_db = 0; - } - - /* Open DB */ - sqlret = db_util_open(BADGE_DB_PATH, &db, 0); - - return sqlret; -} - static inline long _get_max_len(void) { long max = 0; @@ -144,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; @@ -154,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", @@ -165,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); @@ -199,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; @@ -209,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", @@ -220,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); @@ -254,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); @@ -314,20 +308,19 @@ 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; - badge_error_e sqlret_open; + 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_wrapper(&db); + 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; @@ -348,18 +341,18 @@ 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_wrapper(&db); + 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; @@ -369,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; } @@ -431,19 +424,19 @@ 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_wrapper(&db); + sqlret = db_util_open(BADGE_DB_PATH, &db, 0); if (sqlret != SQLITE_OK || !db) { ERR("fail to db_util_open - [%s][%d]", BADGE_DB_PATH, sqlret); return BADGE_ERROR_FROM_DB; @@ -465,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; } @@ -492,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; } @@ -515,21 +508,21 @@ 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_wrapper(&db); + 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; @@ -551,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; } @@ -574,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; } @@ -597,23 +590,23 @@ 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_wrapper(&db); + 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; @@ -636,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; } @@ -659,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_wrapper(&db); + 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); @@ -691,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; } @@ -723,23 +721,23 @@ 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_wrapper(&db); + 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; @@ -752,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; } @@ -773,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; } @@ -800,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_wrapper(&db); + 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); @@ -835,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; } @@ -908,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(); @@ -928,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; @@ -939,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); @@ -958,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); @@ -978,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; } @@ -1001,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; } @@ -1013,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; @@ -1057,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; } @@ -1078,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); @@ -1093,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; @@ -1137,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; @@ -1158,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 old mode 100755 new mode 100644 index 7cb728d..24826c6 --- 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 old mode 100755 new mode 100644 index 410f784..def52a5 --- a/src/badge_setting.c +++ b/src/badge_setting.c @@ -24,18 +24,16 @@ #include #include #include -#include #include "badge.h" #include "badge_log.h" #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" -#define SETTING_DB_FILE tzplatform_mkpath(TZ_USER_DB,".notification_parser.db") +#define SETTING_DB_FILE "/opt/usr/dbspace/.notification_parser.db" struct prop_table { const char *property; @@ -86,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; @@ -95,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", @@ -106,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); @@ -138,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) { @@ -177,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; } @@ -200,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; @@ -211,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) { @@ -240,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; } @@ -263,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; } } @@ -282,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) { @@ -303,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) { -- 2.7.4