From: jiseob.jang Date: Mon, 13 Jul 2015 08:14:55 +0000 (+0900) Subject: merge from tizen 2.4 X-Git-Tag: submit/tizen_mobile/20150713.120751^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d3643cdcc32751f01894ea2704c6fb1d96de0dec;p=platform%2Fcore%2Fapi%2Flibaccount-service.git merge from tizen 2.4 - remove deprecated APIs in wearable and tv profile - fix memory leak Change-Id: I9143bbc3a783836f800575031284ba2efdae9755 Signed-off-by: jiseob.jang --- diff --git a/include/account.h b/include/account.h index edbedc5..b60c511 100644 --- a/include/account.h +++ b/include/account.h @@ -44,7 +44,7 @@ extern "C" /** * @brief Called once for each account from the database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] user_data The user data passed from the foreach function * @@ -63,7 +63,7 @@ typedef bool (*account_cb)(account_h account, void *user_data); /** * @brief Called once for each capability of an account in the database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] capability_type The capability type * @param[in] capability_state The capability state * @param[in] user_data The user data passed from the foreach function @@ -80,7 +80,7 @@ typedef bool (*capability_cb)(const char* capability_type, account_capability_st /** * @brief Called once for each custom data of an account in the database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] key The user custom key * @param[in] value The user custom value of the specific key * @param[in] user_data The user data passed @@ -98,7 +98,7 @@ typedef bool (*account_custom_cb)(char* key, char* value, void *user_data); /** * @brief Called once for each account provider in the database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account_type The account provider handle * @param[in] user_data The user data passed * @@ -116,7 +116,7 @@ typedef bool (*account_type_cb)(account_type_h account_type, void *user_data); /** * @brief Called once for each account label. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] app_id The application ID * @param[in] label The name of the account depends on the specified locale * @param[in] locale The locale is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code.\n @@ -137,7 +137,7 @@ typedef bool (*account_label_cb)(char* app_id, char* label, char* locale, void * /** * @brief Called once for each capability of an account provider in the database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] app_id The application ID * @param[in] key The user custom key * @param[in] user_data The user data passed @@ -156,7 +156,7 @@ typedef bool (*provider_feature_cb)(char* app_id, char* key, void* user_data); /** * @brief Called once when an event occurs. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] event_type The account event type * @param[in] account_id The account ID to update * @param[in] user_data The user data passed @@ -176,7 +176,7 @@ typedef bool (*account_event_cb)(const char* event_type, int account_id, void* u * This API is not necessary to use since Tizen 2.4. * @brief Connects to the account database by readwrite mode. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.wirte @@ -186,8 +186,6 @@ typedef bool (*account_event_cb)(const char* event_type, int account_id, void* u * @retval #ACCOUNT_ERROR_NONE Successful * @retval #ACCOUNT_ERROR_DB_NOT_OPENED DB is not connected * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission - * - * @see account_disconnect() */ int account_connect(void); @@ -197,14 +195,12 @@ int account_connect(void); * This API is not necessary to use since Tizen 2.4. * @brief Connects to the account database by readonly mode. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @return @c 0 on success, * otherwise a negative error value * @retval #ACCOUNT_ERROR_NONE Successful * @retval #ACCOUNT_ERROR_DB_NOT_OPENED DB is not connected * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission - * - * @see account_disconnect() */ int account_connect_readonly(void); @@ -214,23 +210,19 @@ int account_connect_readonly(void); * This API is not necessary to use since Tizen 2.4. * @brief Disconnects from the account database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @return @c 0 on success, * otherwise a negative error value * @retval #ACCOUNT_ERROR_NONE Successful * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite busy handler exprired - * - * @see account_connect() - * @see account_connect_readonly() */ int account_disconnect(void); - /** * @brief Creates a handle to the account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks Release @a account using account_destroy(). * @remarks The created handle is not added to the account database until account_insert_to_db() is called. * @@ -250,7 +242,7 @@ int account_create(account_h *account); /** * @brief Destroys the account handle and releases all its resources. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * * @return @c 0 on success, @@ -266,7 +258,7 @@ int account_destroy(account_h account); /** * @brief Inserts the account details to the account database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.write @@ -287,9 +279,9 @@ int account_destroy(account_h account); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_delete_from_db_by_id() * @see account_delete_from_db_by_user_name() * @see account_delete_from_db_by_package_name() @@ -302,7 +294,7 @@ int account_insert_to_db(account_h account, int *account_db_id); /** * @brief Deletes an account from the account database by account DB ID. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.write @@ -320,9 +312,9 @@ int account_insert_to_db(account_h account, int *account_db_id); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_insert_to_db() * @see account_delete_from_db_by_user_name() * @see account_delete_from_db_by_package_name() @@ -335,7 +327,7 @@ int account_delete_from_db_by_id(int account_db_id); /** * @brief Deletes an account from the account database by user name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.write @@ -354,9 +346,9 @@ int account_delete_from_db_by_id(int account_db_id); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_insert_to_db() * @see account_delete_from_db_by_id() * @see account_delete_from_db_by_package_name() @@ -369,7 +361,7 @@ int account_delete_from_db_by_user_name(char *user_name, char *package_name); /** * @brief Deletes an account from the account database by package name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.write @@ -386,9 +378,9 @@ int account_delete_from_db_by_user_name(char *user_name, char *package_name); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_insert_to_db() * @see account_delete_from_db_by_id() * @see account_delete_from_db_by_user_name() @@ -400,7 +392,7 @@ int account_delete_from_db_by_package_name(const char *package_name); /** * @brief Updates the account details to the account database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.write @@ -419,9 +411,9 @@ int account_delete_from_db_by_package_name(const char *package_name); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_insert_to_db() * @see account_delete_from_db_by_id() * @see account_delete_from_db_by_user_name() @@ -434,7 +426,7 @@ int account_update_to_db_by_id(account_h account, int account_id); * @brief Updates the account details to the account database. * The provider permission check has been added since tizen 2.4. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.write @@ -454,9 +446,9 @@ int account_update_to_db_by_id(account_h account, int account_id); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_insert_to_db() * @see account_delete_from_db_by_id() * @see account_delete_from_db_by_user_name() @@ -468,7 +460,7 @@ int account_update_to_db_by_id_ex(account_h account, int account_id); /** * @brief Updates the account details to the account database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.write @@ -488,9 +480,9 @@ int account_update_to_db_by_id_ex(account_h account, int account_id); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_insert_to_db() * @see account_delete_from_db_by_id() * @see account_delete_from_db_by_user_name() @@ -503,7 +495,7 @@ int account_update_to_db_by_user_name(account_h account, const char *user_name, /** * @brief Gets the ID of an account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[out] account_id The account ID * @@ -518,7 +510,7 @@ int account_get_account_id(account_h account, int *account_id); /** * @brief Gets the user name of an account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a user_name using free(). * * @param[in] account The account handle @@ -538,7 +530,7 @@ int account_get_user_name(account_h account, char **user_name); /** * @brief Sets the user name of an account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] user_name The string to set as user name * @@ -555,7 +547,7 @@ int account_set_user_name(account_h account, const char *user_name); /** * @brief Gets the display name of an account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a display_name using free(). * * @param[in] account The account handle @@ -575,7 +567,7 @@ int account_get_display_name(account_h account, char **display_name); /** * @brief Sets the display name of an account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] display_name The text string to set as the display name * @@ -591,7 +583,7 @@ int account_set_display_name(account_h account, const char *display_name); /** * @brief Gets the capability detail of an account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] capability_type The capability type to get the capability value * @param[out] capability_value The capability value (on/off) of the specified capability_type @@ -609,7 +601,7 @@ int account_get_capability(account_h account, const char* capability_type, accou /** * @brief Gets all the capabilities of an account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] callback The callback function * @param[in] user_data The user data to be passed to the callback function @@ -626,7 +618,7 @@ int account_get_capability_all(account_h account, capability_cb callback, void * /** * @brief Sets the capability. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] capability_type The capability type * @param[in] capability_state The capability state @@ -644,7 +636,7 @@ int account_set_capability(account_h account, const char* capability_type, accou /** * @brief Gets the icon path. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a icon_path using free(). * * @param[in] account The account handle @@ -664,7 +656,7 @@ int account_get_icon_path(account_h account, char **icon_path); /** * @brief Sets the icon path. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] icon_path The text string to set as the icon path * @@ -681,7 +673,7 @@ int account_set_icon_path(account_h account, const char *icon_path); /** * @brief Gets the domain name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a domain_name using free(). * * @param[in] account The account handle @@ -701,7 +693,7 @@ int account_get_domain_name(account_h account, char **domain_name); /** * @brief Sets the domain name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] domain_name The text string to set as the domain name * @@ -718,7 +710,7 @@ int account_set_domain_name(account_h account, const char *domain_name); /** * @brief Gets the email address. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a email_address using free(). * * @param[in] account The account handle @@ -738,7 +730,7 @@ int account_get_email_address(account_h account, char **email_address); /** * @brief Sets the email address. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] email_address The text string to set as the email address * @@ -755,7 +747,7 @@ int account_set_email_address(account_h account, const char *email_address); /** * @brief Gets the package name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a package_name using free(). * * @param[in] account The account handle @@ -775,7 +767,7 @@ int account_get_package_name(account_h account, char **package_name); /** * @brief Sets the package name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] package_name The text string to set as the package name * @@ -792,7 +784,7 @@ int account_set_package_name(account_h account, const char *package_name); /** * @brief Gets the access token. Access token field is used to store account secrets (such as password or master token). * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a access_token using free(). * * @param[in] account The account handle @@ -814,7 +806,7 @@ int account_get_access_token(account_h account, char **access_token); /** * @brief Sets the access token. Access token field is used to store account secrets (such as password or master token). * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] access_token The text string to set as the access token * @@ -831,7 +823,7 @@ int account_set_access_token(account_h account, const char *access_token); /** * @brief Gets the user text. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a user_text using free(). * * @param[in] account The account handle @@ -852,7 +844,7 @@ int account_get_user_text(account_h account, int user_text_index, char **user_te /** * @brief Sets the user text. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] user_text_index The index of the user text (must be in range from @c 0 to @c 4) * @param[in] user_text The text string to set as the user text @@ -870,7 +862,7 @@ int account_set_user_text(account_h account, int user_text_index, const char *us /** * @brief Gets the user integer. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] user_int_index The index of the user integer (must be in range from @c 0 to @c 4) * @param[out] user_integer The user integer @@ -888,7 +880,7 @@ int account_get_user_int(account_h account, int user_int_index, int *user_intege /** * @brief Sets the user integer. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] user_int_index The index of the user integer (must be in range from @c 0 to @c 4) * @param[in] user_integer The integer to set as the user integer @@ -906,7 +898,7 @@ int account_set_user_int(account_h account, int user_int_index, int user_integer /** * @brief Gets the auth type. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[out] auth_type The auth type * @@ -923,7 +915,7 @@ int account_get_auth_type(account_h account, account_auth_type_e *auth_type); /** * @brief Sets the auth type. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] auth_type The integer to be set as the auth type * @@ -940,7 +932,7 @@ int account_set_auth_type(account_h account, const account_auth_type_e auth_type /** * @brief Gets the secret. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[out] secret The secret * @@ -957,7 +949,7 @@ int account_get_secret(account_h account, account_secrecy_state_e *secret); /** * @brief Sets the secret. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] secret The secrecy to be set * @@ -973,7 +965,7 @@ int account_set_secret(account_h account, const account_secrecy_state_e secret); /** * @brief Gets the sync support. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[out] sync_support The sync support * @@ -990,7 +982,7 @@ int account_get_sync_support(account_h account, account_sync_state_e *sync_suppo /** * @brief Sets the sync support. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] sync_support The sync state to be set * @@ -1007,7 +999,7 @@ int account_set_sync_support(account_h account, const account_sync_state_e sync_ /** * @brief Gets the source. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a user_text using free(). * * @param[in] account The account handle @@ -1027,7 +1019,7 @@ int account_get_source(account_h account, char **source); /** * @brief Sets the source. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] source The text string to set as the source * @@ -1043,7 +1035,7 @@ int account_set_source(account_h account, const char *source); /** * @brief Sets the custom. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] key The user custom key for the specific value * @param[in] value The user custom value about the given key @@ -1060,7 +1052,7 @@ int account_set_custom(account_h account, const char* key, const char* value); /** * @brief Gets the user specific custom text of an account key. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] key The key to retrieve custom text * @param[out] value The text of the given key @@ -1079,7 +1071,7 @@ int account_get_custom(account_h account, const char* key, char** value); /** * @brief Gets all the user custom texts of an account. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account The account handle * @param[in] callback The callback function to retrieve all custom text \n * The callback function gives the key and value. @@ -1097,7 +1089,7 @@ int account_get_custom_all(account_h account, account_custom_cb callback, void* /** * @brief Retrieves all accounts details by invoking the given callback function iteratively. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function to invoke @@ -1113,10 +1105,10 @@ int account_get_custom_all(account_h account, account_custom_cb callback, void* * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * @post This function invokes account_cb(). * - * @see account_connect() * @see account_query_account_by_account_id() * @see account_query_account_by_user_name() * @see account_query_account_by_package_name() @@ -1128,7 +1120,7 @@ int account_foreach_account_from_db(account_cb callback, void *user_data); /** * @brief Retrieve an account with the account ID. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] account_db_id The account database ID to search @@ -1145,9 +1137,9 @@ int account_foreach_account_from_db(account_cb callback, void *user_data); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_query_account_by_user_name() * @see account_query_account_by_package_name() * @see account_query_account_by_capability() @@ -1157,7 +1149,7 @@ int account_query_account_by_account_id(int account_db_id, account_h *account); /** * @brief Retrieves all accounts with the user name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function to invoke @@ -1174,10 +1166,10 @@ int account_query_account_by_account_id(int account_db_id, account_h *account); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * @post This function invokes account_cb(). * - * @see account_connect() * @see account_foreach_account_from_db() * @see account_query_account_by_account_id() * @see account_query_account_by_package_name() @@ -1189,7 +1181,7 @@ int account_query_account_by_user_name(account_cb callback, const char* user_nam /** * @brief Retrieves all accounts with the package name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function to invoke @@ -1206,10 +1198,10 @@ int account_query_account_by_user_name(account_cb callback, const char* user_nam * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * @post This function invokes account_cb(). * - * @see account_connect() * @see account_foreach_account_from_db() * @see account_query_account_by_account_id() * @see account_query_account_by_user_name() @@ -1220,7 +1212,7 @@ int account_query_account_by_package_name(account_cb callback, const char *packa /** * @brief Retrieves all accounts with the capability type and capability value. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function to invoke @@ -1238,10 +1230,10 @@ int account_query_account_by_package_name(account_cb callback, const char *packa * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * @post This function invokes account_cb(). * - * @see account_connect() * @see account_foreach_account_from_db() * @see account_query_account_by_account_id() * @see account_query_account_by_user_name() @@ -1252,7 +1244,7 @@ int account_query_account_by_capability(account_cb callback, const char* capabil /** * @brief Retrieves all accounts with the capability type. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function to invoke @@ -1269,10 +1261,10 @@ int account_query_account_by_capability(account_cb callback, const char* capabil * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * @post This function invokes account_cb(). * - * @see account_connect() * @see account_foreach_account_from_db() * @see account_query_account_by_account_id() * @see account_query_account_by_user_name() @@ -1283,7 +1275,7 @@ int account_query_account_by_capability_type(account_cb callback, const char* ca /** * @brief Retrieves all capabilities with the account database ID. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function to invoke @@ -1300,10 +1292,10 @@ int account_query_account_by_capability_type(account_cb callback, const char* ca * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * @post This function invokes capability_cb(). * - * @see account_connect() * @see account_get_capability() * @see account_set_capability() */ @@ -1313,7 +1305,7 @@ int account_query_capability_by_account_id(capability_cb callback, int account_d /** * @brief Gets the count of accounts in the account database. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[out] count The out parameter for count of all accounts @@ -1326,16 +1318,15 @@ int account_query_capability_by_account_id(capability_cb callback, int account_d * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). - * - * @see account_connect() + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. */ int account_get_total_count_from_db(int *count); /** * @brief Updates the sync status of an account with the given account ID. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * %http://tizen.org/privilege/account.write @@ -1354,9 +1345,8 @@ int account_get_total_count_from_db(int *count); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). - * - * @see account_connect() + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. */ int account_update_sync_status_by_id(int account_db_id, const account_sync_state_e sync_status); @@ -1367,7 +1357,7 @@ int account_update_sync_status_by_id(int account_db_id, const account_sync_state /** * @brief Creates a handle to the account provider. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a account_type handle using account_type_destroy().\n * * @param[in] account_type The account provider handle @@ -1385,7 +1375,7 @@ int account_type_create(account_type_h *account_type); /** * @brief Destroys the account provider handle and releases all its resources. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * * @remarks When you get @a account_type_h using account_type_create(), you must release the handle using account_destroy() to avoid the memory leak. * @@ -1403,7 +1393,7 @@ int account_type_destroy(account_type_h account_type); /** * @brief Retrieves capability information with your application ID. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function carries the capability name of an app ID @@ -1420,17 +1410,15 @@ int account_type_destroy(account_type_h account_type); * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). - * - * @see account_connect() - * @see account_disconnect() + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. */ int account_type_query_provider_feature_by_app_id(provider_feature_cb callback, const char* app_id, void *user_data ); /** * @brief Checks whether the given application ID supports the capability. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. @@ -1450,17 +1438,15 @@ int account_type_query_provider_feature_by_app_id(provider_feature_cb callback, * @excaption #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @excaption #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). - * - * @see account_connect() - * @see account_disconnect() + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. */ bool account_type_query_supported_feature(const char* app_id, const char* capability); /** * @brief Gets the application ID of an account provider. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a app_id using free(). * * @param[in] account_type The account provider handle \n @@ -1481,7 +1467,7 @@ int account_type_get_app_id(account_type_h account_type, char **app_id); /** * @brief Gets the service provider ID of an account provider. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a service_provider_id using free(). * * @param[in] account_type The account provider handle \n @@ -1502,7 +1488,7 @@ int account_type_get_service_provider_id(account_type_h account_type, char **ser /** * @brief Gets the icon path of an account provider. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a icon_path using free(). * * @param[in] account_type The account provider handle \n @@ -1523,7 +1509,7 @@ int account_type_get_icon_path(account_type_h account_type, char **icon_path); /** * @brief Gets the small icon path of an account provider. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a small_icon_path using free(). * * @param[in] account_type The account provider handle\n @@ -1544,7 +1530,7 @@ int account_type_get_small_icon_path(account_type_h account_type, char **small_i /** * @brief Checks whether the given account provider supports multiple accounts. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account_type The account provider handle \n * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db. * @param[out] multiple_account_support The flag indicating support for multiple accounts accounts\n @@ -1564,7 +1550,7 @@ int account_type_get_multiple_account_support(account_type_h account_type, int * /** * @brief Gets capability information with the given account provider handle. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account_type The account provider handle\n * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). * @param[in] callback The callback function that carries the capability name of the app ID @@ -1577,17 +1563,15 @@ int account_type_get_multiple_account_support(account_type_h account_type, int * * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed * - * @pre This function requires an open connection to an account service by account_connect(). - * - * @see account_connect() - * @see account_disconnect() + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. */ int account_type_get_provider_feature_all(account_type_h account_type, provider_feature_cb callback, void* user_data); /** * @brief Gets the specific label information detail of an account provider. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account_type The account provider handle\n * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). * @param[in] locale The locale is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code.\n @@ -1609,7 +1593,7 @@ int account_type_get_label_by_locale(account_type_h account_type, const char* lo /** * @brief Gets the label information detail of an account provider. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @param[in] account_type The account provider handle\n * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). * @param[in] callback The callback function carrying the label information @@ -1628,7 +1612,7 @@ int account_type_get_label(account_type_h account_type, account_label_cb callbac /** * @brief Retrieves the label information with your application ID. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function that carries label_h for label information \n @@ -1646,19 +1630,18 @@ int account_type_get_label(account_type_h account_type, account_label_cb callbac * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_type_query_by_app_id() * @see account_type_foreach_account_type_from_db() - * @see account_disconnect() */ int account_type_query_label_by_app_id(account_label_cb callback, const char* app_id, void *user_data ); /** * @brief Retrieves the account provider information with your application ID. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] app_id The application ID to search @@ -1674,9 +1657,9 @@ int account_type_query_label_by_app_id(account_label_cb callback, const char* ap * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_type_create() * @see account_type_get_app_id() * @see account_type_get_service_provider_id() @@ -1691,7 +1674,7 @@ int account_type_query_by_app_id(const char* app_id, account_type_h *account_typ /** * @brief Retrieves all account priovider information. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The account provider information \n @@ -1708,9 +1691,9 @@ int account_type_query_by_app_id(const char* app_id, account_type_h *account_typ * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * - * @see account_connect() * @see account_type_create() * @see account_type_get_app_id() * @see account_type_get_service_provider_id() @@ -1725,7 +1708,7 @@ int account_type_foreach_account_type_from_db(account_type_cb callback, void *us /** * @brief Retrieves the label information with the given application ID and locale. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] app_id The application ID @@ -1743,16 +1726,15 @@ int account_type_foreach_account_type_from_db(account_type_cb callback, void *us * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). - * - * @see account_connect() + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. */ int account_type_query_label_by_locale(const char* app_id, const char* locale, char** label); /** * @brief Retrieves account provider information with the capability name. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] callback The callback function to retrieve account provider information @@ -1770,16 +1752,15 @@ int account_type_query_label_by_locale(const char* app_id, const char* locale, c * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). - * - * @see account_connect() + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. */ int account_type_query_by_provider_feature(account_type_cb callback, const char* key, void* user_data); /** * @brief Checks whether the given app_id exists in the account provider DB. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read * @param[in] app_id The application ID to check @@ -1794,7 +1775,8 @@ int account_type_query_by_provider_feature(account_type_cb callback, const char* * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened * - * @pre This function requires an open connection to an account service by account_connect(). + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. * * @see account_type_query_by_app_id() */ @@ -1807,7 +1789,7 @@ int account_type_query_app_id_exist(const char* app_id); /** * @brief Creates a handle for the account event subscription. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @remarks You must release @a account_subscribe handle using account_unsubscribe_notification(). * * @param[in] account_subscribe The account subscription handle @@ -1826,7 +1808,7 @@ int account_subscribe_create(account_subscribe_h* account_subscribe); /** * @brief Starts to subscribe account event through the given callback function. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * @param[in] account_subscribe The account subscription handle @@ -1850,7 +1832,7 @@ int account_subscribe_notification(account_subscribe_h account_subscribe, accoun /** * @brief Destroys the account subscribe handle and releases all its resources. * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.4 @endif + * @since_tizen 2.3 * @privlevel public * @privilege %http://tizen.org/privilege/account.read \n * @remarks You must call @a account_unsubscribe_notification when you do not need to subscribe account event. diff --git a/include/account_internal.h b/include/account_internal.h index 644f8c1..6e4d32c 100644 --- a/include/account_internal.h +++ b/include/account_internal.h @@ -22,6 +22,9 @@ #ifndef __ACCOUNT_INTERNAL_H__ #define __ACCOUNT_INTERNAL_H__ +#include +#include + #ifdef __cplusplus extern "C" { @@ -351,7 +354,7 @@ int account_type_delete_by_app_id(const char* app_id); * @see account_unsubscribe_notification() * @see account_subscribe_notification() */ -ACCOUNT_API int account_subscribe_notification_ex(account_subscribe_h account_subscribe, account_event_cb cb_func, void* user_data); +int account_subscribe_notification_ex(account_subscribe_h account_subscribe, account_event_cb cb_func, void* user_data); /** * @internal @@ -369,8 +372,27 @@ ACCOUNT_API int account_subscribe_notification_ex(account_subscribe_h account_su * @see account_unsubscribe_notification() * @see account_subscribe_notification() */ -ACCOUNT_API int account_unsubscribe_notification_ex(account_subscribe_h account_subscribe); +int account_unsubscribe_notification_ex(account_subscribe_h account_subscribe); +/** + * @internal + * @brief Gets the count of accounts whose secrect state is visible in the account database. + * @since_tizen 2.3 + * + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[out] count The out parameter for count of all accounts + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_ACCESS_DENIED DB Access fail by permission + * + * @pre This function requires an open connection to an account service by account_connect(). + * + */ +int account_get_total_count_from_db_ex(int *count); /*offline apis*/ int account_type_insert_to_db_offline(account_type_h account_type, int* account_type_id); diff --git a/include/account_product.h b/include/account_product.h deleted file mode 100644 index 4c9e964..0000000 --- a/include/account_product.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * account - * - * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: Wonyoung Lee , Sungchan Kim - * - * 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. - * - */ - -#ifndef __ACCOUNT_PRODUCT_H__ -#define __ACCOUNT_PRODUCT_H__ - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - -/** - * @internal - * @addtogroup CAPI_ACCOUNT_MANAGER_MODULE - * @{ - */ - -/** - * @brief Gets the count of accounts whose secrect state is visible in the account database. - * @since_tizen 2.3 - * - * @privlevel public - * @privilege %http://tizen.org/privilege/account.read - * @param[out] count The out parameter for count of all accounts - * - * @return @c 0 on success, - * otherwise a negative error value - * @retval #ACCOUNT_ERROR_NONE Successful - * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed - * @retval #ACCOUNT_ERROR_ACCESS_DENIED DB Access fail by permission - * - * @pre This function requires an open connection to an account service by account_connect(). - * - * @see account_connect() - */ -ACCOUNT_API int account_get_total_count_from_db_ex(int *count); - -/** -* @} -*/ - -#ifdef __cplusplus -} -#endif - -#endif /* __ACCOUNT_PRODUCT_H__ */ diff --git a/include/mobile/account.h b/include/mobile/account.h new file mode 100644 index 0000000..b60c511 --- /dev/null +++ b/include/mobile/account.h @@ -0,0 +1,1857 @@ +/* + * + * Copyright (c) 2012 - 2013 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. + * + */ + +#ifndef __ACCOUNT_H__ +#define __ACCOUNT_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifndef ACCOUNT_API +#define ACCOUNT_API __attribute__ ((visibility("default"))) +#endif + +/** + * @file account.h + * @brief This file contains the Account API for account management. + */ + +/** + * @addtogroup CAPI_ACCOUNT_MANAGER_MODULE + * @{ + */ + +/** + * @brief Called once for each account from the database. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] user_data The user data passed from the foreach function + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_foreach_account_from_db(), account_query_account_by_account_id(), account_query_account_by_user_name() or account_query_account_by_package_name() must be called. + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + */ +typedef bool (*account_cb)(account_h account, void *user_data); + +/** + * @brief Called once for each capability of an account in the database. + * + * @since_tizen 2.3 + * @param[in] capability_type The capability type + * @param[in] capability_state The capability state + * @param[in] user_data The user data passed from the foreach function + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_query_capability_by_account_id() must be called. + * + * @see account_query_capability_by_account_id() + */ +typedef bool (*capability_cb)(const char* capability_type, account_capability_state_e capability_state, void *user_data); + +/** + * @brief Called once for each custom data of an account in the database. + * + * @since_tizen 2.3 + * @param[in] key The user custom key + * @param[in] value The user custom value of the specific key + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_query_capability_by_account_id() must be called. + * + * @see account_query_capability_by_account_id() + */ +typedef bool (*account_custom_cb)(char* key, char* value, void *user_data); + + +/** + * @brief Called once for each account provider in the database. + * + * @since_tizen 2.3 + * @param[in] account_type The account provider handle + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_type_foreach_account_type_from_db(), account_type_query_by_provider_feature() must be called. + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_provider_feature() + */ +typedef bool (*account_type_cb)(account_type_h account_type, void *user_data); + + +/** + * @brief Called once for each account label. + * + * @since_tizen 2.3 + * @param[in] app_id The application ID + * @param[in] label The name of the account depends on the specified locale + * @param[in] locale The locale is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code.\n + * For example, "ko_KR" for Korean, "en_US" for American English. + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_type_get_label(), account_type_query_label_by_app_id() must be called. + * + * @see account_type_get_label() + * @see account_type_query_label_by_app_id() + */ +typedef bool (*account_label_cb)(char* app_id, char* label, char* locale, void *user_data); + + +/** + * @brief Called once for each capability of an account provider in the database. + * + * @since_tizen 2.3 + * @param[in] app_id The application ID + * @param[in] key The user custom key + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_type_query_provider_feature_by_app_id(), account_type_get_provider_feature_all() must be called. + * + * @see account_type_query_provider_feature_by_app_id() + * @see account_type_get_provider_feature_all() + */ +typedef bool (*provider_feature_cb)(char* app_id, char* key, void* user_data); + + +/** + * @brief Called once when an event occurs. + * + * @since_tizen 2.3 + * @param[in] event_type The account event type + * @param[in] account_id The account ID to update + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_subscribe_notification() must be called. + * + * @see account_subscribe_notification() + */ +typedef bool (*account_event_cb)(const char* event_type, int account_id, void* user_data); + + +/** + * @deprecated Deprecated since Tizen 2.4.\n + * This API is not necessary to use since Tizen 2.4. + * @brief Connects to the account database by readwrite mode. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.wirte + * @remarks This API need both privileges + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED DB is not connected + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + */ +int account_connect(void); + + +/** + * @deprecated Deprecated since Tizen 2.4.\n + * This API is not necessary to use since Tizen 2.4. + * @brief Connects to the account database by readonly mode. + * + * @since_tizen 2.3 + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED DB is not connected + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + */ +int account_connect_readonly(void); + + +/** + * @deprecated Deprecated since Tizen 2.4.\n + * This API is not necessary to use since Tizen 2.4. + * @brief Disconnects from the account database. + * + * @since_tizen 2.3 + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite busy handler exprired + */ +int account_disconnect(void); + +/** + * @brief Creates a handle to the account. + * + * @since_tizen 2.3 + * @remarks Release @a account using account_destroy(). + * @remarks The created handle is not added to the account database until account_insert_to_db() is called. + * + * @param[in] account The account handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_destroy() + */ +int account_create(account_h *account); + + +/** + * @brief Destroys the account handle and releases all its resources. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_create() + */ +int account_destroy(account_h account); + + +/** + * @brief Inserts the account details to the account database. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges + * @param[in] account The account handle + * @param[out] account_db_id The account ID to be assigned to an account + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_DUPLICATED Same user name exists in your application + * @retval #ACCOUNT_ERROR_NOT_ALLOW_MULTIPLE Tried to add an account in spite of multiple false accounts + * @retval #ACCOUNT_ERROR_NOT_REGISTERED_PROVIDER Tried to add an account though you did not register the account type in manifest + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_id() + * @see account_update_to_db_by_user_name() + */ +int account_insert_to_db(account_h account, int *account_db_id); + + +/** + * @brief Deletes an account from the account database by account DB ID. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can delete an account which was added by same package applications + * @param[in] account_db_id The account ID to delete + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED The account owner is different from the caller or DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_id() + * @see account_update_to_db_by_user_name() + */ +int account_delete_from_db_by_id(int account_db_id); + + +/** + * @brief Deletes an account from the account database by user name. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can delete accounts which were added by same package applications + * @param[in] user_name The user name of the account to delete + * @param[in] package_name The package name of the account to delete + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_id() + * @see account_update_to_db_by_user_name() + */ +int account_delete_from_db_by_user_name(char *user_name, char *package_name); + + +/** + * @brief Deletes an account from the account database by package name. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can delete accounts which was added by same package applications + * @param[in] package_name The package name of account(s) to delete + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_update_to_db_by_id() + * @see account_update_to_db_by_user_name() + */ +int account_delete_from_db_by_package_name(const char *package_name); + +/** + * @brief Updates the account details to the account database. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can update an account which was added by same package applications + * @param[in] account The account handle + * @param[in] account_id The account ID to update + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND The account to update does not exist + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_user_name() + */ +int account_update_to_db_by_id(account_h account, int account_id); + +/** + * @brief Updates the account details to the account database. + * The provider permission check has been added since tizen 2.4. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can update an account which was added by same package applications + * @param[in] account The account handle + * @param[in] account_id The account ID to update + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND The account to update does not exist + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_user_name() + */ +int account_update_to_db_by_id_ex(account_h account, int account_id); + +/** + * @brief Updates the account details to the account database. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can update accounts which were added by same package applications + * @param[in] account The account handle + * @param[in] user_name The user name of the account to update + * @param[in] package_name The package name for the user name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND The account to update does not exist + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_id() + * + */ +int account_update_to_db_by_user_name(account_h account, const char *user_name, const char *package_name); + +/** + * @brief Gets the ID of an account. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[out] account_id The account ID + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + */ +int account_get_account_id(account_h account, int *account_id); + +/** + * @brief Gets the user name of an account. + * + * @since_tizen 2.3 + * @remarks You must release @a user_name using free(). + * + * @param[in] account The account handle + * @param[out] user_name The user name of the account + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_user_name() + */ +int account_get_user_name(account_h account, char **user_name); + + +/** + * @brief Sets the user name of an account. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] user_name The string to set as user name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_user_name() + */ +int account_set_user_name(account_h account, const char *user_name); + + +/** + * @brief Gets the display name of an account. + * + * @since_tizen 2.3 + * @remarks You must release @a display_name using free(). + * + * @param[in] account The account handle + * @param[out] display_name The display name of the account + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_get_display_name() + */ +int account_get_display_name(account_h account, char **display_name); + + +/** + * @brief Sets the display name of an account. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] display_name The text string to set as the display name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_display_name() + */ +int account_set_display_name(account_h account, const char *display_name); + +/** + * @brief Gets the capability detail of an account. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] capability_type The capability type to get the capability value + * @param[out] capability_value The capability value (on/off) of the specified capability_type + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND There is no given capability_type in the account + * + * @see account_set_capability() + */ +int account_get_capability(account_h account, const char* capability_type, account_capability_state_e* capability_value); + +/** + * @brief Gets all the capabilities of an account. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] callback The callback function + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_capability() + */ +int account_get_capability_all(account_h account, capability_cb callback, void *user_data); + +/** + * @brief Sets the capability. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] capability_type The capability type + * @param[in] capability_state The capability state + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_capability() + */ +int account_set_capability(account_h account, const char* capability_type, account_capability_state_e capability_state); + + +/** + * @brief Gets the icon path. + * + * @since_tizen 2.3 + * @remarks You must release @a icon_path using free(). + * + * @param[in] account The account handle + * @param[out] icon_path The icon path + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_icon_path() + */ +int account_get_icon_path(account_h account, char **icon_path); + + +/** + * @brief Sets the icon path. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] icon_path The text string to set as the icon path + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_icon_path() + */ +int account_set_icon_path(account_h account, const char *icon_path); + + +/** + * @brief Gets the domain name. + * + * @since_tizen 2.3 + * @remarks You must release @a domain_name using free(). + * + * @param[in] account The account handle + * @param[out] domain_name The domain name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_domain_name() + */ +int account_get_domain_name(account_h account, char **domain_name); + + +/** + * @brief Sets the domain name. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] domain_name The text string to set as the domain name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_domain_name() + */ +int account_set_domain_name(account_h account, const char *domain_name); + + +/** + * @brief Gets the email address. + * + * @since_tizen 2.3 + * @remarks You must release @a email_address using free(). + * + * @param[in] account The account handle + * @param[out] email_address The email address + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_email_address() + */ +int account_get_email_address(account_h account, char **email_address); + + +/** + * @brief Sets the email address. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] email_address The text string to set as the email address + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_email_address() + */ +int account_set_email_address(account_h account, const char *email_address); + + +/** + * @brief Gets the package name. + * + * @since_tizen 2.3 + * @remarks You must release @a package_name using free(). + * + * @param[in] account The account handle + * @param[out] package_name The package name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_package_name() + */ +int account_get_package_name(account_h account, char **package_name); + + +/** + * @brief Sets the package name. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] package_name The text string to set as the package name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_email_address() + */ +int account_set_package_name(account_h account, const char *package_name); + + +/** + * @brief Gets the access token. Access token field is used to store account secrets (such as password or master token). + * + * @since_tizen 2.3 + * @remarks You must release @a access_token using free(). + * + * @param[in] account The account handle + * @param[out] access_token The access token + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @remarks Access token field is used for storing account secret (password / master token etc) + * Only account owner application can retrieve account password / access_token. For others this field will be null. + * @see account_set_access_token() + */ +int account_get_access_token(account_h account, char **access_token); + + +/** + * @brief Sets the access token. Access token field is used to store account secrets (such as password or master token). + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] access_token The text string to set as the access token + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @remarks Only account owner application can retrieve account password / access_token. For others this field will be null. + * @see account_get_access_token() + */ +int account_set_access_token(account_h account, const char *access_token); + + +/** + * @brief Gets the user text. + * + * @since_tizen 2.3 + * @remarks You must release @a user_text using free(). + * + * @param[in] account The account handle + * @param[in] user_text_index The index of the user text (range: 0 ~ 4) + * @param[out] user_text The user text + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_user_text() + */ +int account_get_user_text(account_h account, int user_text_index, char **user_text); + + +/** + * @brief Sets the user text. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] user_text_index The index of the user text (must be in range from @c 0 to @c 4) + * @param[in] user_text The text string to set as the user text + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_user_text() + */ +int account_set_user_text(account_h account, int user_text_index, const char *user_text); + + +/** + * @brief Gets the user integer. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] user_int_index The index of the user integer (must be in range from @c 0 to @c 4) + * @param[out] user_integer The user integer + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_user_int() + */ +int account_get_user_int(account_h account, int user_int_index, int *user_integer); + + +/** + * @brief Sets the user integer. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] user_int_index The index of the user integer (must be in range from @c 0 to @c 4) + * @param[in] user_integer The integer to set as the user integer + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_user_int() + */ +int account_set_user_int(account_h account, int user_int_index, int user_integer); + + +/** + * @brief Gets the auth type. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[out] auth_type The auth type + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_auth_type() + */ +int account_get_auth_type(account_h account, account_auth_type_e *auth_type); + + +/** + * @brief Sets the auth type. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] auth_type The integer to be set as the auth type + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_auth_type() + */ +int account_set_auth_type(account_h account, const account_auth_type_e auth_type); + + +/** + * @brief Gets the secret. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[out] secret The secret + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_secret() + */ +int account_get_secret(account_h account, account_secrecy_state_e *secret); + + +/** + * @brief Sets the secret. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] secret The secrecy to be set + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_secret() + */ +int account_set_secret(account_h account, const account_secrecy_state_e secret); + +/** + * @brief Gets the sync support. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[out] sync_support The sync support + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_sync_support() + */ +int account_get_sync_support(account_h account, account_sync_state_e *sync_support); + + +/** + * @brief Sets the sync support. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] sync_support The sync state to be set + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_sync_support() + */ +int account_set_sync_support(account_h account, const account_sync_state_e sync_support); + + +/** + * @brief Gets the source. + * + * @since_tizen 2.3 + * @remarks You must release @a user_text using free(). + * + * @param[in] account The account handle + * @param[out] source The source + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_source() + */ +int account_get_source(account_h account, char **source); + + +/** + * @brief Sets the source. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] source The text string to set as the source + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_source() + */ +int account_set_source(account_h account, const char *source); + +/** + * @brief Sets the custom. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] key The user custom key for the specific value + * @param[in] value The user custom value about the given key + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_custom() + */ +int account_set_custom(account_h account, const char* key, const char* value); + +/** + * @brief Gets the user specific custom text of an account key. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] key The key to retrieve custom text + * @param[out] value The text of the given key + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND There is no given capability type in the account + * + * @see account_set_custom() + */ +int account_get_custom(account_h account, const char* key, char** value); + + +/** + * @brief Gets all the user custom texts of an account. + * + * @since_tizen 2.3 + * @param[in] account The account handle + * @param[in] callback The callback function to retrieve all custom text \n + * The callback function gives the key and value. + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_custom() + */ +int account_get_custom_all(account_h account, account_custom_cb callback, void* user_data); + +/** + * @brief Retrieves all accounts details by invoking the given callback function iteratively. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND Related record does not exist + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * @post This function invokes account_cb(). + * + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + * @see account_query_account_by_capability() + */ +int account_foreach_account_from_db(account_cb callback, void *user_data); + + +/** + * @brief Retrieve an account with the account ID. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] account_db_id The account database ID to search + * @param[out] account The account handle \n + * Must be allocated by account_create() and freed after using by account_destroy(). + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + * @see account_query_account_by_capability() + */ +int account_query_account_by_account_id(int account_db_id, account_h *account); + +/** + * @brief Retrieves all accounts with the user name. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] user_name The user name to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * @post This function invokes account_cb(). + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_package_name() + * @see account_query_account_by_capability() + * + */ +int account_query_account_by_user_name(account_cb callback, const char* user_name, void* user_data); + +/** + * @brief Retrieves all accounts with the package name. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] package_name The package name to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * @post This function invokes account_cb(). + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_capability() + */ +int account_query_account_by_package_name(account_cb callback, const char *package_name, void *user_data); + +/** + * @brief Retrieves all accounts with the capability type and capability value. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] capability_type The capability type to search + * @param[in] capability_value The capability value to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * @post This function invokes account_cb(). + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + */ +int account_query_account_by_capability(account_cb callback, const char* capability_type, account_capability_state_e capability_value, void *user_data); + +/** + * @brief Retrieves all accounts with the capability type. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] capability_type The capability type to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * @post This function invokes account_cb(). + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + */ +int account_query_account_by_capability_type(account_cb callback, const char* capability_type, void* user_data); + +/** + * @brief Retrieves all capabilities with the account database ID. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] account_db_id The account database ID to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * @post This function invokes capability_cb(). + * + * @see account_get_capability() + * @see account_set_capability() + */ +int account_query_capability_by_account_id(capability_cb callback, int account_db_id, void *user_data); + + +/** + * @brief Gets the count of accounts in the account database. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[out] count The out parameter for count of all accounts + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + */ +int account_get_total_count_from_db(int *count); + +/** + * @brief Updates the sync status of an account with the given account ID. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can update an account which was added by same package applications + * @param[in] account_db_id The account ID for which sync status needs to be changed + * @param[in] sync_status The new sync status + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + */ +int account_update_sync_status_by_id(int account_db_id, const account_sync_state_e sync_status); + + +/* Account type API */ + + +/** + * @brief Creates a handle to the account provider. + * + * @since_tizen 2.3 + * @remarks You must release @a account_type handle using account_type_destroy().\n + * + * @param[in] account_type The account provider handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_type_destroy() + */ +int account_type_create(account_type_h *account_type); + +/** + * @brief Destroys the account provider handle and releases all its resources. + * + * @since_tizen 2.3 + * + * @remarks When you get @a account_type_h using account_type_create(), you must release the handle using account_destroy() to avoid the memory leak. + * + * @param[in] account_type The account provider handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_type_create() + */ +int account_type_destroy(account_type_h account_type); + +/** + * @brief Retrieves capability information with your application ID. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function carries the capability name of an app ID + * @param[in] app_id The application ID to search + * @param[in] user_data The user data \n + * If you have your private data to carry into callback function, then you can use it. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + */ +int account_type_query_provider_feature_by_app_id(provider_feature_cb callback, const char* app_id, void *user_data ); + +/** + * @brief Checks whether the given application ID supports the capability. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. + * @param[in] app_id The application ID + * @param[in] capability The capability \n + * For example, ACCOUNT_SUPPORTS_CAPABILITY_CONTACT or "http://tizen.org/account/capability/contact" + * + * @return @c TRUE if the application supports the given capability, \n + * otherwise @c FALSE if the application does not support the given capability + * @retval @c TRUE means the application supports the given capability + * @retval @c FALSE means the application does not support the given capability + * @exception #ACCOUNT_ERROR_NONE Successful + * @exception #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @exception #ACCOUNT_ERROR_RECORD_NOT_FOUND Related record does not exist + * @excaption #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @exception #ACCOUNT_ERROR_PERMISSION_DENIED DB access fail by permission + * @excaption #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @excaption #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + */ +bool account_type_query_supported_feature(const char* app_id, const char* capability); + +/** + * @brief Gets the application ID of an account provider. + * + * @since_tizen 2.3 + * @remarks You must release @a app_id using free(). + * + * @param[in] account_type The account provider handle \n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[out] app_id The application ID of an account provider item + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_app_id(account_type_h account_type, char **app_id); + +/** + * @brief Gets the service provider ID of an account provider. + * + * @since_tizen 2.3 + * @remarks You must release @a service_provider_id using free(). + * + * @param[in] account_type The account provider handle \n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[out] service_provider_id The service provider text ID of an account provider item + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_service_provider_id(account_type_h account_type, char **service_provider_id); + +/** + * @brief Gets the icon path of an account provider. + * + * @since_tizen 2.3 + * @remarks You must release @a icon_path using free(). + * + * @param[in] account_type The account provider handle \n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[out] icon_path The icon path of the account provider item + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_icon_path(account_type_h account_type, char **icon_path); + +/** + * @brief Gets the small icon path of an account provider. + * + * @since_tizen 2.3 + * @remarks You must release @a small_icon_path using free(). + * + * @param[in] account_type The account provider handle\n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[out] small_icon_path The small icon path of the account provider item + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_small_icon_path(account_type_h account_type, char **small_icon_path); + +/** + * @brief Checks whether the given account provider supports multiple accounts. + * + * @since_tizen 2.3 + * @param[in] account_type The account provider handle \n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db. + * @param[out] multiple_account_support The flag indicating support for multiple accounts accounts\n + * TRUE or FALSE. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_multiple_account_support(account_type_h account_type, int *multiple_account_support); + +/** + * @brief Gets capability information with the given account provider handle. + * + * @since_tizen 2.3 + * @param[in] account_type The account provider handle\n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[in] callback The callback function that carries the capability name of the app ID + * @param[in] user_data The user data \n + * If you have your private data to carry into callback function, then you can use it. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + */ +int account_type_get_provider_feature_all(account_type_h account_type, provider_feature_cb callback, void* user_data); + +/** + * @brief Gets the specific label information detail of an account provider. + * + * @since_tizen 2.3 + * @param[in] account_type The account provider handle\n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[in] locale The locale is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code.\n + * For example, "ko_KR" or "ko-kr" for Korean, "en_US" or "en-us" for American English. + * @param[out] label The label text given for the locale + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND No label for the given locale + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ + +int account_type_get_label_by_locale(account_type_h account_type, const char* locale, char** label); + +/** + * @brief Gets the label information detail of an account provider. + * + * @since_tizen 2.3 + * @param[in] account_type The account provider handle\n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[in] callback The callback function carrying the label information + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_label(account_type_h account_type, account_label_cb callback, void *user_data); + +/** + * @brief Retrieves the label information with your application ID. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function that carries label_h for label information \n + * label_h contains label info as parameter. + * @param[in] app_id The application ID to search + * @param[in] user_data The user data \n + * If you have your private data to carry into callback function, then you can use it. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_type_query_by_app_id() + * @see account_type_foreach_account_type_from_db() + */ +int account_type_query_label_by_app_id(account_label_cb callback, const char* app_id, void *user_data ); + +/** + * @brief Retrieves the account provider information with your application ID. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] app_id The application ID to search + * @param[out] account_type The account handle which is created by account_type_create() + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND Queried data does not exist + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_type_create() + * @see account_type_get_app_id() + * @see account_type_get_service_provider_id() + * @see account_type_get_icon_path() + * @see account_type_get_small_icon_path() + * @see account_type_get_multiple_account_support() + * @see account_type_get_label() + * @see account_type_destroy() + */ +int account_type_query_by_app_id(const char* app_id, account_type_h *account_type); + +/** + * @brief Retrieves all account priovider information. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The account provider information \n + * You can get the account information through account_type_get_* with the carried account_type_handle. + * @param[in] user_data The user data \n + * It will be carried through your callback function. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_type_create() + * @see account_type_get_app_id() + * @see account_type_get_service_provider_id() + * @see account_type_get_icon_path() + * @see account_type_get_small_icon_path() + * @see account_type_get_multiple_account_support() + * @see account_type_get_label() + * @see account_type_destroy() + */ +int account_type_foreach_account_type_from_db(account_type_cb callback, void *user_data); + +/** + * @brief Retrieves the label information with the given application ID and locale. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] app_id The application ID + * @param[in] locale The locale is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code.\n + * For example, "ko_KR" or "ko-kr" for Korean, "en_US" or "en-us" for American English. + * @param[out] label The label text corresponding app_id and locale \n + * It must be free text. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + */ +int account_type_query_label_by_locale(const char* app_id, const char* locale, char** label); + +/** + * @brief Retrieves account provider information with the capability name. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to retrieve account provider information + * @param[in] key The capability value to search account provider \n + * For example, ACCOUNT_SUPPORTS_CAPABILITY_CONTACT or "http://tizen.org/account/capability/contact" + * @param[in] user_data If you have your private data to carry into callback function, then you can use it + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND Record not found + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + */ +int account_type_query_by_provider_feature(account_type_cb callback, const char* key, void* user_data); + +/** + * @brief Checks whether the given app_id exists in the account provider DB. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] app_id The application ID to check + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND Record not found + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid app ID + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @pre This function requires an open connection to an account service by account_connect() on tizen 2.3.\n + * But the account_connect() is not required to use this function since tizen 2.4. + * + * @see account_type_query_by_app_id() + */ +int account_type_query_app_id_exist(const char* app_id); + + + +/* End of account provider API */ + +/** + * @brief Creates a handle for the account event subscription. + * + * @since_tizen 2.3 + * @remarks You must release @a account_subscribe handle using account_unsubscribe_notification(). + * + * @param[in] account_subscribe The account subscription handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_unsubscribe_notification() + * @see account_subscribe_notification() + */ +int account_subscribe_create(account_subscribe_h* account_subscribe); + +/** + * @brief Starts to subscribe account event through the given callback function. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * @param[in] account_subscribe The account subscription handle + * @param[in] callback The callback function that is called when an account is removed and a data of account is updated from the account database \n + * It will be called with event message and account ID. + * @param[in] user_data The user_data that is delivered to callback + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_EVENT_SUBSCRIPTION_FAIL Subscription fail + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @pre account_subscribe_create() + * + * @see account_unsubscribe_notification() + * @see account_subscribe_notification() + */ +int account_subscribe_notification(account_subscribe_h account_subscribe, account_event_cb callback, void* user_data); + +/** + * @brief Destroys the account subscribe handle and releases all its resources. + * + * @since_tizen 2.3 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * @remarks You must call @a account_unsubscribe_notification when you do not need to subscribe account event. + * + * @param[in] account_subscribe The account subscription handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_EVENT_SUBSCRIPTION_FAIL Unsubscription failed + * + * @see account_create() + */ +int account_unsubscribe_notification(account_subscribe_h account_subscribe); + +#ifdef __cplusplus +} +#endif + + +#endif //__ACCOUNT_H_ diff --git a/include/wearable/account.h b/include/wearable/account.h new file mode 100644 index 0000000..cb92acc --- /dev/null +++ b/include/wearable/account.h @@ -0,0 +1,1746 @@ +/* + * + * Copyright (c) 2012 - 2013 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. + * + */ + +#ifndef __ACCOUNT_H__ +#define __ACCOUNT_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifndef ACCOUNT_API +#define ACCOUNT_API __attribute__ ((visibility("default"))) +#endif + +/** + * @file account.h + * @brief This file contains the Account API for account management. + */ + +/** + * @addtogroup CAPI_ACCOUNT_MANAGER_MODULE + * @{ + */ + +/** + * @brief Called once for each account from the database. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] user_data The user data passed from the foreach function + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_foreach_account_from_db(), account_query_account_by_account_id(), account_query_account_by_user_name() or account_query_account_by_package_name() must be called. + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + */ +typedef bool (*account_cb)(account_h account, void *user_data); + +/** + * @brief Called once for each capability of an account in the database. + * + * @since_tizen 2.4 + * @param[in] capability_type The capability type + * @param[in] capability_state The capability state + * @param[in] user_data The user data passed from the foreach function + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_query_capability_by_account_id() must be called. + * + * @see account_query_capability_by_account_id() + */ +typedef bool (*capability_cb)(const char* capability_type, account_capability_state_e capability_state, void *user_data); + +/** + * @brief Called once for each custom data of an account in the database. + * + * @since_tizen 2.4 + * @param[in] key The user custom key + * @param[in] value The user custom value of the specific key + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_query_capability_by_account_id() must be called. + * + * @see account_query_capability_by_account_id() + */ +typedef bool (*account_custom_cb)(char* key, char* value, void *user_data); + + +/** + * @brief Called once for each account provider in the database. + * + * @since_tizen 2.4 + * @param[in] account_type The account provider handle + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_type_foreach_account_type_from_db(), account_type_query_by_provider_feature() must be called. + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_provider_feature() + */ +typedef bool (*account_type_cb)(account_type_h account_type, void *user_data); + + +/** + * @brief Called once for each account label. + * + * @since_tizen 2.4 + * @param[in] app_id The application ID + * @param[in] label The name of the account depends on the specified locale + * @param[in] locale The locale is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code.\n + * For example, "ko_KR" for Korean, "en_US" for American English. + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_type_get_label(), account_type_query_label_by_app_id() must be called. + * + * @see account_type_get_label() + * @see account_type_query_label_by_app_id() + */ +typedef bool (*account_label_cb)(char* app_id, char* label, char* locale, void *user_data); + + +/** + * @brief Called once for each capability of an account provider in the database. + * + * @since_tizen 2.4 + * @param[in] app_id The application ID + * @param[in] key The user custom key + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_type_query_provider_feature_by_app_id(), account_type_get_provider_feature_all() must be called. + * + * @see account_type_query_provider_feature_by_app_id() + * @see account_type_get_provider_feature_all() + */ +typedef bool (*provider_feature_cb)(char* app_id, char* key, void* user_data); + + +/** + * @brief Called once when an event occurs. + * + * @since_tizen 2.4 + * @param[in] event_type The account event type + * @param[in] account_id The account ID to update + * @param[in] user_data The user data passed + * + * @return @c true to continue with the next iteration of the loop, \n + * otherwise @c false to break out of the loop + * + * @pre account_subscribe_notification() must be called. + * + * @see account_subscribe_notification() + */ +typedef bool (*account_event_cb)(const char* event_type, int account_id, void* user_data); + +/** + * @brief Creates a handle to the account. + * + * @since_tizen 2.4 + * @remarks Release @a account using account_destroy(). + * @remarks The created handle is not added to the account database until account_insert_to_db() is called. + * + * @param[in] account The account handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_destroy() + */ +int account_create(account_h *account); + + +/** + * @brief Destroys the account handle and releases all its resources. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_create() + */ +int account_destroy(account_h account); + + +/** + * @brief Inserts the account details to the account database. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges + * @param[in] account The account handle + * @param[out] account_db_id The account ID to be assigned to an account + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_DUPLICATED Same user name exists in your application + * @retval #ACCOUNT_ERROR_NOT_ALLOW_MULTIPLE Tried to add an account in spite of multiple false accounts + * @retval #ACCOUNT_ERROR_NOT_REGISTERED_PROVIDER Tried to add an account though you did not register the account type in manifest + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_id() + * @see account_update_to_db_by_user_name() + */ +int account_insert_to_db(account_h account, int *account_db_id); + + +/** + * @brief Deletes an account from the account database by account DB ID. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can delete an account which was added by same package applications + * @param[in] account_db_id The account ID to delete + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED The account owner is different from the caller or DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_id() + * @see account_update_to_db_by_user_name() + */ +int account_delete_from_db_by_id(int account_db_id); + + +/** + * @brief Deletes an account from the account database by user name. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can delete accounts which were added by same package applications + * @param[in] user_name The user name of the account to delete + * @param[in] package_name The package name of the account to delete + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_id() + * @see account_update_to_db_by_user_name() + */ +int account_delete_from_db_by_user_name(char *user_name, char *package_name); + + +/** + * @brief Deletes an account from the account database by package name. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can delete accounts which was added by same package applications + * @param[in] package_name The package name of account(s) to delete + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_update_to_db_by_id() + * @see account_update_to_db_by_user_name() + */ +int account_delete_from_db_by_package_name(const char *package_name); + +/** + * @brief Updates the account details to the account database. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can update an account which was added by same package applications + * @param[in] account The account handle + * @param[in] account_id The account ID to update + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND The account to update does not exist + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_user_name() + */ +int account_update_to_db_by_id(account_h account, int account_id); + +/** + * @brief Updates the account details to the account database. + * The provider permission check has been added since tizen 2.4. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can update an account which was added by same package applications + * @param[in] account The account handle + * @param[in] account_id The account ID to update + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND The account to update does not exist + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_user_name() + */ +int account_update_to_db_by_id_ex(account_h account, int account_id); + +/** + * @brief Updates the account details to the account database. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can update accounts which were added by same package applications + * @param[in] account The account handle + * @param[in] user_name The user name of the account to update + * @param[in] package_name The package name for the user name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND The account to update does not exist + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_insert_to_db() + * @see account_delete_from_db_by_id() + * @see account_delete_from_db_by_user_name() + * @see account_delete_from_db_by_package_name() + * @see account_update_to_db_by_id() + * + */ +int account_update_to_db_by_user_name(account_h account, const char *user_name, const char *package_name); + +/** + * @brief Gets the ID of an account. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[out] account_id The account ID + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + */ +int account_get_account_id(account_h account, int *account_id); + +/** + * @brief Gets the user name of an account. + * + * @since_tizen 2.4 + * @remarks You must release @a user_name using free(). + * + * @param[in] account The account handle + * @param[out] user_name The user name of the account + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_user_name() + */ +int account_get_user_name(account_h account, char **user_name); + + +/** + * @brief Sets the user name of an account. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] user_name The string to set as user name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_user_name() + */ +int account_set_user_name(account_h account, const char *user_name); + + +/** + * @brief Gets the display name of an account. + * + * @since_tizen 2.4 + * @remarks You must release @a display_name using free(). + * + * @param[in] account The account handle + * @param[out] display_name The display name of the account + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_get_display_name() + */ +int account_get_display_name(account_h account, char **display_name); + + +/** + * @brief Sets the display name of an account. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] display_name The text string to set as the display name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_display_name() + */ +int account_set_display_name(account_h account, const char *display_name); + +/** + * @brief Gets the capability detail of an account. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] capability_type The capability type to get the capability value + * @param[out] capability_value The capability value (on/off) of the specified capability_type + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND There is no given capability_type in the account + * + * @see account_set_capability() + */ +int account_get_capability(account_h account, const char* capability_type, account_capability_state_e* capability_value); + +/** + * @brief Gets all the capabilities of an account. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] callback The callback function + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_capability() + */ +int account_get_capability_all(account_h account, capability_cb callback, void *user_data); + +/** + * @brief Sets the capability. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] capability_type The capability type + * @param[in] capability_state The capability state + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_capability() + */ +int account_set_capability(account_h account, const char* capability_type, account_capability_state_e capability_state); + + +/** + * @brief Gets the icon path. + * + * @since_tizen 2.4 + * @remarks You must release @a icon_path using free(). + * + * @param[in] account The account handle + * @param[out] icon_path The icon path + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_icon_path() + */ +int account_get_icon_path(account_h account, char **icon_path); + + +/** + * @brief Sets the icon path. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] icon_path The text string to set as the icon path + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_icon_path() + */ +int account_set_icon_path(account_h account, const char *icon_path); + + +/** + * @brief Gets the domain name. + * + * @since_tizen 2.4 + * @remarks You must release @a domain_name using free(). + * + * @param[in] account The account handle + * @param[out] domain_name The domain name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_domain_name() + */ +int account_get_domain_name(account_h account, char **domain_name); + + +/** + * @brief Sets the domain name. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] domain_name The text string to set as the domain name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_domain_name() + */ +int account_set_domain_name(account_h account, const char *domain_name); + + +/** + * @brief Gets the email address. + * + * @since_tizen 2.4 + * @remarks You must release @a email_address using free(). + * + * @param[in] account The account handle + * @param[out] email_address The email address + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_email_address() + */ +int account_get_email_address(account_h account, char **email_address); + + +/** + * @brief Sets the email address. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] email_address The text string to set as the email address + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_email_address() + */ +int account_set_email_address(account_h account, const char *email_address); + + +/** + * @brief Gets the package name. + * + * @since_tizen 2.4 + * @remarks You must release @a package_name using free(). + * + * @param[in] account The account handle + * @param[out] package_name The package name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_package_name() + */ +int account_get_package_name(account_h account, char **package_name); + + +/** + * @brief Sets the package name. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] package_name The text string to set as the package name + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_email_address() + */ +int account_set_package_name(account_h account, const char *package_name); + + +/** + * @brief Gets the access token. Access token field is used to store account secrets (such as password or master token). + * + * @since_tizen 2.4 + * @remarks You must release @a access_token using free(). + * + * @param[in] account The account handle + * @param[out] access_token The access token + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @remarks Access token field is used for storing account secret (password / master token etc) + * Only account owner application can retrieve account password / access_token. For others this field will be null. + * @see account_set_access_token() + */ +int account_get_access_token(account_h account, char **access_token); + + +/** + * @brief Sets the access token. Access token field is used to store account secrets (such as password or master token). + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] access_token The text string to set as the access token + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @remarks Only account owner application can retrieve account password / access_token. For others this field will be null. + * @see account_get_access_token() + */ +int account_set_access_token(account_h account, const char *access_token); + + +/** + * @brief Gets the user text. + * + * @since_tizen 2.4 + * @remarks You must release @a user_text using free(). + * + * @param[in] account The account handle + * @param[in] user_text_index The index of the user text (range: 0 ~ 4) + * @param[out] user_text The user text + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_user_text() + */ +int account_get_user_text(account_h account, int user_text_index, char **user_text); + + +/** + * @brief Sets the user text. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] user_text_index The index of the user text (must be in range from @c 0 to @c 4) + * @param[in] user_text The text string to set as the user text + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_user_text() + */ +int account_set_user_text(account_h account, int user_text_index, const char *user_text); + + +/** + * @brief Gets the user integer. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] user_int_index The index of the user integer (must be in range from @c 0 to @c 4) + * @param[out] user_integer The user integer + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_user_int() + */ +int account_get_user_int(account_h account, int user_int_index, int *user_integer); + + +/** + * @brief Sets the user integer. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] user_int_index The index of the user integer (must be in range from @c 0 to @c 4) + * @param[in] user_integer The integer to set as the user integer + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_user_int() + */ +int account_set_user_int(account_h account, int user_int_index, int user_integer); + + +/** + * @brief Gets the auth type. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[out] auth_type The auth type + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_auth_type() + */ +int account_get_auth_type(account_h account, account_auth_type_e *auth_type); + + +/** + * @brief Sets the auth type. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] auth_type The integer to be set as the auth type + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_auth_type() + */ +int account_set_auth_type(account_h account, const account_auth_type_e auth_type); + + +/** + * @brief Gets the secret. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[out] secret The secret + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_secret() + */ +int account_get_secret(account_h account, account_secrecy_state_e *secret); + + +/** + * @brief Sets the secret. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] secret The secrecy to be set + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_secret() + */ +int account_set_secret(account_h account, const account_secrecy_state_e secret); + +/** + * @brief Gets the sync support. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[out] sync_support The sync support + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_sync_support() + */ +int account_get_sync_support(account_h account, account_sync_state_e *sync_support); + + +/** + * @brief Sets the sync support. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] sync_support The sync state to be set + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_sync_support() + */ +int account_set_sync_support(account_h account, const account_sync_state_e sync_support); + + +/** + * @brief Gets the source. + * + * @since_tizen 2.4 + * @remarks You must release @a user_text using free(). + * + * @param[in] account The account handle + * @param[out] source The source + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_set_source() + */ +int account_get_source(account_h account, char **source); + + +/** + * @brief Sets the source. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] source The text string to set as the source + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_source() + */ +int account_set_source(account_h account, const char *source); + +/** + * @brief Sets the custom. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] key The user custom key for the specific value + * @param[in] value The user custom value about the given key + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_get_custom() + */ +int account_set_custom(account_h account, const char* key, const char* value); + +/** + * @brief Gets the user specific custom text of an account key. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] key The key to retrieve custom text + * @param[out] value The text of the given key + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND There is no given capability type in the account + * + * @see account_set_custom() + */ +int account_get_custom(account_h account, const char* key, char** value); + + +/** + * @brief Gets all the user custom texts of an account. + * + * @since_tizen 2.4 + * @param[in] account The account handle + * @param[in] callback The callback function to retrieve all custom text \n + * The callback function gives the key and value. + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_set_custom() + */ +int account_get_custom_all(account_h account, account_custom_cb callback, void* user_data); + +/** + * @brief Retrieves all accounts details by invoking the given callback function iteratively. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND Related record does not exist + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @post This function invokes account_cb(). + * + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + * @see account_query_account_by_capability() + */ +int account_foreach_account_from_db(account_cb callback, void *user_data); + + +/** + * @brief Retrieve an account with the account ID. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] account_db_id The account database ID to search + * @param[out] account The account handle \n + * Must be allocated by account_create() and freed after using by account_destroy(). + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + * @see account_query_account_by_capability() + */ +int account_query_account_by_account_id(int account_db_id, account_h *account); + +/** + * @brief Retrieves all accounts with the user name. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] user_name The user name to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @post This function invokes account_cb(). + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_package_name() + * @see account_query_account_by_capability() + * + */ +int account_query_account_by_user_name(account_cb callback, const char* user_name, void* user_data); + +/** + * @brief Retrieves all accounts with the package name. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] package_name The package name to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @post This function invokes account_cb(). + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_capability() + */ +int account_query_account_by_package_name(account_cb callback, const char *package_name, void *user_data); + +/** + * @brief Retrieves all accounts with the capability type and capability value. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] capability_type The capability type to search + * @param[in] capability_value The capability value to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @post This function invokes account_cb(). + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + */ +int account_query_account_by_capability(account_cb callback, const char* capability_type, account_capability_state_e capability_value, void *user_data); + +/** + * @brief Retrieves all accounts with the capability type. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] capability_type The capability type to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @post This function invokes account_cb(). + * + * @see account_foreach_account_from_db() + * @see account_query_account_by_account_id() + * @see account_query_account_by_user_name() + * @see account_query_account_by_package_name() + */ +int account_query_account_by_capability_type(account_cb callback, const char* capability_type, void* user_data); + +/** + * @brief Retrieves all capabilities with the account database ID. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to invoke + * @param[in] account_db_id The account database ID to search + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @post This function invokes capability_cb(). + * + * @see account_get_capability() + * @see account_set_capability() + */ +int account_query_capability_by_account_id(capability_cb callback, int account_db_id, void *user_data); + + +/** + * @brief Gets the count of accounts in the account database. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[out] count The out parameter for count of all accounts + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + */ +int account_get_total_count_from_db(int *count); + +/** + * @brief Updates the sync status of an account with the given account ID. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * %http://tizen.org/privilege/account.write + * @remarks This API need both privileges \n + * Only can update an account which was added by same package applications + * @param[in] account_db_id The account ID for which sync status needs to be changed + * @param[in] sync_status The new sync status + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + */ +int account_update_sync_status_by_id(int account_db_id, const account_sync_state_e sync_status); + + +/* Account type API */ + + +/** + * @brief Creates a handle to the account provider. + * + * @since_tizen 2.4 + * @remarks You must release @a account_type handle using account_type_destroy().\n + * + * @param[in] account_type The account provider handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_type_destroy() + */ +int account_type_create(account_type_h *account_type); + +/** + * @brief Destroys the account provider handle and releases all its resources. + * + * @since_tizen 2.4 + * + * @remarks When you get @a account_type_h using account_type_create(), you must release the handle using account_destroy() to avoid the memory leak. + * + * @param[in] account_type The account provider handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_type_create() + */ +int account_type_destroy(account_type_h account_type); + +/** + * @brief Retrieves capability information with your application ID. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function carries the capability name of an app ID + * @param[in] app_id The application ID to search + * @param[in] user_data The user data \n + * If you have your private data to carry into callback function, then you can use it. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + */ +int account_type_query_provider_feature_by_app_id(provider_feature_cb callback, const char* app_id, void *user_data ); + +/** + * @brief Checks whether the given application ID supports the capability. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. + * @param[in] app_id The application ID + * @param[in] capability The capability \n + * For example, ACCOUNT_SUPPORTS_CAPABILITY_CONTACT or "http://tizen.org/account/capability/contact" + * + * @return @c TRUE if the application supports the given capability, \n + * otherwise @c FALSE if the application does not support the given capability + * @retval @c TRUE means the application supports the given capability + * @retval @c FALSE means the application does not support the given capability + * @exception #ACCOUNT_ERROR_NONE Successful + * @exception #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @exception #ACCOUNT_ERROR_RECORD_NOT_FOUND Related record does not exist + * @excaption #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @exception #ACCOUNT_ERROR_PERMISSION_DENIED DB access fail by permission + * @excaption #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @excaption #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + */ +bool account_type_query_supported_feature(const char* app_id, const char* capability); + +/** + * @brief Gets the application ID of an account provider. + * + * @since_tizen 2.4 + * @remarks You must release @a app_id using free(). + * + * @param[in] account_type The account provider handle \n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[out] app_id The application ID of an account provider item + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_app_id(account_type_h account_type, char **app_id); + +/** + * @brief Gets the service provider ID of an account provider. + * + * @since_tizen 2.4 + * @remarks You must release @a service_provider_id using free(). + * + * @param[in] account_type The account provider handle \n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[out] service_provider_id The service provider text ID of an account provider item + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_service_provider_id(account_type_h account_type, char **service_provider_id); + +/** + * @brief Gets the icon path of an account provider. + * + * @since_tizen 2.4 + * @remarks You must release @a icon_path using free(). + * + * @param[in] account_type The account provider handle \n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[out] icon_path The icon path of the account provider item + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_icon_path(account_type_h account_type, char **icon_path); + +/** + * @brief Gets the small icon path of an account provider. + * + * @since_tizen 2.4 + * @remarks You must release @a small_icon_path using free(). + * + * @param[in] account_type The account provider handle\n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[out] small_icon_path The small icon path of the account provider item + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_small_icon_path(account_type_h account_type, char **small_icon_path); + +/** + * @brief Checks whether the given account provider supports multiple accounts. + * + * @since_tizen 2.4 + * @param[in] account_type The account provider handle \n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db. + * @param[out] multiple_account_support The flag indicating support for multiple accounts accounts\n + * TRUE or FALSE. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of memory + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_multiple_account_support(account_type_h account_type, int *multiple_account_support); + +/** + * @brief Gets capability information with the given account provider handle. + * + * @since_tizen 2.4 + * @param[in] account_type The account provider handle\n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[in] callback The callback function that carries the capability name of the app ID + * @param[in] user_data The user data \n + * If you have your private data to carry into callback function, then you can use it. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * + */ +int account_type_get_provider_feature_all(account_type_h account_type, provider_feature_cb callback, void* user_data); + +/** + * @brief Gets the specific label information detail of an account provider. + * + * @since_tizen 2.4 + * @param[in] account_type The account provider handle\n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[in] locale The locale is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code.\n + * For example, "ko_KR" or "ko-kr" for Korean, "en_US" or "en-us" for American English. + * @param[out] label The label text given for the locale + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND No label for the given locale + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ + +int account_type_get_label_by_locale(account_type_h account_type, const char* locale, char** label); + +/** + * @brief Gets the label information detail of an account provider. + * + * @since_tizen 2.4 + * @param[in] account_type The account provider handle\n + * It should be given by account_type_query_* functions or account_type_foreach_account_type_from_db(). + * @param[in] callback The callback function carrying the label information + * @param[in] user_data The user data to be passed to the callback function + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_type_foreach_account_type_from_db() + * @see account_type_query_by_app_id() + */ +int account_type_get_label(account_type_h account_type, account_label_cb callback, void *user_data); + +/** + * @brief Retrieves the label information with your application ID. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function that carries label_h for label information \n + * label_h contains label info as parameter. + * @param[in] app_id The application ID to search + * @param[in] user_data The user data \n + * If you have your private data to carry into callback function, then you can use it. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_type_query_by_app_id() + * @see account_type_foreach_account_type_from_db() + */ +int account_type_query_label_by_app_id(account_label_cb callback, const char* app_id, void *user_data ); + +/** + * @brief Retrieves the account provider information with your application ID. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] app_id The application ID to search + * @param[out] account_type The account handle which is created by account_type_create() + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND Queried data does not exist + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_type_create() + * @see account_type_get_app_id() + * @see account_type_get_service_provider_id() + * @see account_type_get_icon_path() + * @see account_type_get_small_icon_path() + * @see account_type_get_multiple_account_support() + * @see account_type_get_label() + * @see account_type_destroy() + */ +int account_type_query_by_app_id(const char* app_id, account_type_h *account_type); + +/** + * @brief Retrieves all account priovider information. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The account provider information \n + * You can get the account information through account_type_get_* with the carried account_type_handle. + * @param[in] user_data The user data \n + * It will be carried through your callback function. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_type_create() + * @see account_type_get_app_id() + * @see account_type_get_service_provider_id() + * @see account_type_get_icon_path() + * @see account_type_get_small_icon_path() + * @see account_type_get_multiple_account_support() + * @see account_type_get_label() + * @see account_type_destroy() + */ +int account_type_foreach_account_type_from_db(account_type_cb callback, void *user_data); + +/** + * @brief Retrieves the label information with the given application ID and locale. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] app_id The application ID + * @param[in] locale The locale is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code.\n + * For example, "ko_KR" or "ko-kr" for Korean, "en_US" or "en-us" for American English. + * @param[out] label The label text corresponding app_id and locale \n + * It must be free text. + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + */ +int account_type_query_label_by_locale(const char* app_id, const char* locale, char** label); + +/** + * @brief Retrieves account provider information with the capability name. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] callback The callback function to retrieve account provider information + * @param[in] key The capability value to search account provider \n + * For example, ACCOUNT_SUPPORTS_CAPABILITY_CONTACT or "http://tizen.org/account/capability/contact" + * @param[in] user_data If you have your private data to carry into callback function, then you can use it + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND Record not found + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + */ +int account_type_query_by_provider_feature(account_type_cb callback, const char* key, void* user_data); + +/** + * @brief Checks whether the given app_id exists in the account provider DB. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read + * @param[in] app_id The application ID to check + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_RECORD_NOT_FOUND Record not found + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid app ID + * @retval #ACCOUNT_ERROR_DB_FAILED Database operation failed + * @retval #ACCOUNT_ERROR_PERMISSION_DENIED DB Access fail by permission + * @retval #ACCOUNT_ERROR_DATABASE_BUSY SQLite handler is busy + * @retval #ACCOUNT_ERROR_DB_NOT_OPENED Account database did not opened + * + * @see account_type_query_by_app_id() + */ +int account_type_query_app_id_exist(const char* app_id); + + + +/* End of account provider API */ + +/** + * @brief Creates a handle for the account event subscription. + * + * @since_tizen 2.4 + * @remarks You must release @a account_subscribe handle using account_unsubscribe_notification(). + * + * @param[in] account_subscribe The account subscription handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_OUT_OF_MEMORY Out of Memory + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @see account_unsubscribe_notification() + * @see account_subscribe_notification() + */ +int account_subscribe_create(account_subscribe_h* account_subscribe); + +/** + * @brief Starts to subscribe account event through the given callback function. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * @param[in] account_subscribe The account subscription handle + * @param[in] callback The callback function that is called when an account is removed and a data of account is updated from the account database \n + * It will be called with event message and account ID. + * @param[in] user_data The user_data that is delivered to callback + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_EVENT_SUBSCRIPTION_FAIL Subscription fail + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * + * @pre account_subscribe_create() + * + * @see account_unsubscribe_notification() + * @see account_subscribe_notification() + */ +int account_subscribe_notification(account_subscribe_h account_subscribe, account_event_cb callback, void* user_data); + +/** + * @brief Destroys the account subscribe handle and releases all its resources. + * + * @since_tizen 2.4 + * @privlevel public + * @privilege %http://tizen.org/privilege/account.read \n + * @remarks You must call @a account_unsubscribe_notification when you do not need to subscribe account event. + * + * @param[in] account_subscribe The account subscription handle + * + * @return @c 0 on success, + * otherwise a negative error value + * @retval #ACCOUNT_ERROR_NONE Successful + * @retval #ACCOUNT_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #ACCOUNT_ERROR_EVENT_SUBSCRIPTION_FAIL Unsubscription failed + * + * @see account_create() + */ +int account_unsubscribe_notification(account_subscribe_h account_subscribe); + +#ifdef __cplusplus +} +#endif + + +#endif //__ACCOUNT_H_ diff --git a/packaging/.libaccount-service.spec.swp b/packaging/.libaccount-service.spec.swp deleted file mode 100644 index 9c69e61..0000000 Binary files a/packaging/.libaccount-service.spec.swp and /dev/null differ diff --git a/packaging/libaccount-service.spec b/packaging/libaccount-service.spec index 2f3cc86..6de2e9a 100644 --- a/packaging/libaccount-service.spec +++ b/packaging/libaccount-service.spec @@ -49,7 +49,12 @@ export CFLAGS="${CFLAGS} -fPIC -fvisibility=hidden" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DLIBDIR=%{_libdir} \ -DBINDIR=%{_bindir} \ - -DINCLUDEDIR=%{_includedir} + -DINCLUDEDIR=%{_includedir} \ +#%if "%{?tizen_profile_name}" == "mobile" +# -DFEATURE_PROFILE_MOBILE:BOOL=ON +#%else +# -DFEATURE_PROFILE_MOBILE:BOOL=OFF +#%endif make %{?jobs:-j%jobs} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9ed4c13..1baf714 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -38,6 +38,12 @@ ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"") ADD_DEFINITIONS("-DSLP_DEBUG") +IF(FEATURE_PROFILE_MOBILE) + ADD_DEFINITIONS("-DTIZEN_PROFILE_MOBILE") +ELSE(FEATURE_PROFILE_MOBILE) + ADD_DEFINITIONS("-DTIZEN_PROFILE_MOBILE") +ENDIF(FEATURE_PROFILE_MOBILE) + ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) @@ -54,6 +60,12 @@ INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR}/accounts-svc) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR}) INSTALL(FILES ${CMAKE_BINARY_DIR}/src/${PROJECT_NAME}.pc DESTINATION ${LIBDIR}/pkgconfig) +#IF(FEATURE_PROFILE_MOBILE) +#INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/mobile/account.h DESTINATION include) +#ELSE(FEATURE_PROFILE_MOBILE) +#INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/wearable/account.h DESTINATION include) +#ENDIF(FEATURE_PROFILE_MOBILE) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/account.h DESTINATION include) INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/account-error.h DESTINATION include) INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/account-types.h DESTINATION include) diff --git a/src/account.c b/src/account.c index 6c11e58..e638294 100644 --- a/src/account.c +++ b/src/account.c @@ -31,7 +31,12 @@ #include #include -#include "account.h" +#ifdef TIZEN_PROFILE_MOBILE +#include "mobile/account.h" +#else +#include "wearable/account.h" +#endif + #include "account-error.h" #include "account-types.h" #include "account_internal.h" @@ -50,6 +55,10 @@ static int _account_glist_free(GList* list); static int _account_free_capability_items(account_capability_s *data) { + if(!data) { + return ACCOUNT_ERROR_INVALID_PARAMETER; + } + _ACCOUNT_FREE(data->type); _ACCOUNT_FREE(data->package_name); _ACCOUNT_FREE(data->user_name); @@ -57,8 +66,12 @@ static int _account_free_capability_items(account_capability_s *data) return ACCOUNT_ERROR_NONE; } -static int _account_custom_item_free(account_custom_s *data) +static int _account_free_custom_items(account_custom_s *data) { + if(!data) { + return ACCOUNT_ERROR_INVALID_PARAMETER; + } + _ACCOUNT_FREE(data->app_id); _ACCOUNT_FREE(data->key); _ACCOUNT_FREE(data->value); @@ -66,6 +79,26 @@ static int _account_custom_item_free(account_custom_s *data) return ACCOUNT_ERROR_NONE; } +static int _account_capability_gslist_free(GSList* list) +{ + if(!list){ + return ACCOUNT_ERROR_INVALID_PARAMETER; + } + + GSList* iter; + + for (iter = list; iter != NULL; iter = g_slist_next(iter)) { + account_capability_s *capability_data = (account_capability_s*)iter->data; + _account_free_capability_items(capability_data); + _ACCOUNT_FREE(capability_data); + } + + g_slist_free(list); + list = NULL; + + return ACCOUNT_ERROR_NONE; +} + static int _account_custom_gslist_free(GSList* list) { if(!list){ @@ -76,7 +109,7 @@ static int _account_custom_gslist_free(GSList* list) for (iter = list; iter != NULL; iter = g_slist_next(iter)) { account_custom_s *custom_data = (account_custom_s*)iter->data; - _account_custom_item_free(custom_data); + _account_free_custom_items(custom_data); _ACCOUNT_FREE(custom_data); } @@ -101,6 +134,10 @@ static int _account_list_free(GList* list) static int _account_free_account_items(account_s *data) { + if(!data) { + return ACCOUNT_ERROR_INVALID_PARAMETER; + } + _ACCOUNT_FREE(data->user_name); _ACCOUNT_FREE(data->email_address); _ACCOUNT_FREE(data->display_name); @@ -114,11 +151,9 @@ static int _account_free_account_items(account_s *data) for(i=0;iuser_data_txt[i]); - _account_gslist_free(data->capablity_list); + _account_capability_gslist_free(data->capablity_list); _account_glist_free(data->account_list); _account_custom_gslist_free(data->custom_list); -// _account_list_free(data->domain_list); -// _account_list_free(data->mechanism_list); return ACCOUNT_ERROR_NONE; } @@ -132,9 +167,9 @@ static int _account_gslist_free(GSList* list) GSList* iter; for (iter = list; iter != NULL; iter = g_slist_next(iter)) { - account_capability_s *cap_data = (account_capability_s*)iter->data; - _account_free_capability_items(cap_data); - _ACCOUNT_FREE(cap_data); + account_s *account_record = (account_s*)iter->data; + _account_free_account_items(account_record); + _ACCOUNT_FREE(account_record); } g_slist_free(list); @@ -263,6 +298,7 @@ static int _account_get_error_code(bool is_success, GError *error) return ACCOUNT_ERROR_NONE; } +#ifdef TIZEN_PROFILE_MOBILE ACCOUNT_API int account_connect(void) { return ACCOUNT_ERROR_NONE; @@ -277,6 +313,7 @@ ACCOUNT_API int account_disconnect(void) { return ACCOUNT_ERROR_NONE; } +#endif ACCOUNT_API int account_insert_to_db(account_h account, int *account_db_id) @@ -403,9 +440,11 @@ ACCOUNT_API int account_delete_from_db_by_user_name(char *user_name, char *packa { error_code = _account_get_error_code(is_success, error); _ERR("account_manager_call_account_delete_from_db_by_user_name_sync failed [%d]", error_code); + _account_gslist_free(account_list); return error_code; } + _account_gslist_free(account_list); return ACCOUNT_ERROR_NONE; } @@ -1269,20 +1308,16 @@ ACCOUNT_API int account_get_capability(account_h account, const char* capability GSList *iter; account_s *data = (account_s*)account; - _ERR("before for()"); for (iter = data->capablity_list; iter != NULL; iter = g_slist_next(iter)) { account_capability_s *cap_data = NULL; cap_data = (account_capability_s*)iter->data; - _ERR("capability_type = %s, data->type = %s", capability_type, cap_data->type); - _ERR("capability_value = %d, data->value= %d", capability_value, cap_data->value); if(!strcmp(capability_type, cap_data->type)) { *capability_value = cap_data->value; return ACCOUNT_ERROR_NONE; } } - _ERR("after for()"); return ACCOUNT_ERROR_RECORD_NOT_FOUND; } @@ -1317,22 +1352,17 @@ ACCOUNT_API int account_get_custom(account_h account, const char* key, char** va GSList *iter; account_s *data = (account_s*)account; - _ERR("before for()"); for (iter = data->custom_list; iter != NULL; iter = g_slist_next(iter)) { account_custom_s *custom_data = NULL; custom_data = (account_custom_s*)iter->data; - _ERR("key = %s, custom_data->key = %s", key, custom_data->key); - _ERR("value = %s, custom_data->value = %s", value, custom_data->value); - if(!strcmp(key, custom_data->key)) { (*value) = NULL; *value = _account_get_text(custom_data->value); return ACCOUNT_ERROR_NONE; } } - _ERR("after for()"); return ACCOUNT_ERROR_RECORD_NOT_FOUND; } @@ -1407,6 +1437,7 @@ ACCOUNT_API int account_foreach_account_from_db(account_cb callback, void *user_ } _INFO("account_foreach_account_from_db end"); + _account_gslist_free(account_list); return ACCOUNT_ERROR_NONE; } @@ -1447,7 +1478,12 @@ ACCOUNT_API int account_query_account_by_account_id(int account_db_id, account_h return ACCOUNT_ERROR_DB_FAILED; } - *account = (account_h) account_data; + account_s **input = (account_s **)account; + + _account_free_account_items(*input); + _ACCOUNT_FREE(*input); + + *input = account_data; _INFO("account_query_account_by_account_id end"); @@ -1503,6 +1539,7 @@ ACCOUNT_API int account_query_account_by_user_name(account_cb callback, const ch } _INFO("account_query_account_by_user_name end"); + _account_gslist_free(account_list); return ACCOUNT_ERROR_NONE; } @@ -1554,6 +1591,7 @@ ACCOUNT_API int account_query_account_by_package_name(account_cb callback, const break; } } + _account_gslist_free(account_list); _INFO("account_query_account_by_package_name end"); return ACCOUNT_ERROR_NONE; } @@ -1612,6 +1650,7 @@ ACCOUNT_API int account_query_account_by_capability(account_cb callback, const c break; } } + _account_gslist_free(account_list); _INFO("account_query_account_by_capability end"); return ACCOUNT_ERROR_NONE; } @@ -1664,6 +1703,7 @@ ACCOUNT_API int account_query_account_by_capability_type(account_cb callback, co break; } } + _account_gslist_free(account_list); _INFO("account_query_account_by_capability end"); return ACCOUNT_ERROR_NONE; } @@ -1716,6 +1756,8 @@ ACCOUNT_API int account_query_capability_by_account_id(capability_cb callback, i } _INFO(""); } + + _account_capability_gslist_free(capability_list); _INFO("account_query_capability_by_account_id end"); return ACCOUNT_ERROR_NONE; } @@ -1766,7 +1808,7 @@ ACCOUNT_API int account_get_total_count_from_db(int *count) return _account_get_total_count(count, true); } -ACCOUNT_API int account_get_total_count_from_db_ex(int *count) +ACCOUNT_INTERNAL_API int account_get_total_count_from_db_ex(int *count) { _INFO("account_get_total_count_from_db_ex starting"); @@ -1800,6 +1842,10 @@ ACCOUNT_API int account_update_sync_status_by_id(int account_db_id, const accoun static int _account_type_free_label_items(label_s *data) { + if(!data) { + return ACCOUNT_ERROR_INVALID_PARAMETER; + } + _ACCOUNT_FREE(data->app_id); _ACCOUNT_FREE(data->label); _ACCOUNT_FREE(data->locale); @@ -1807,7 +1853,7 @@ static int _account_type_free_label_items(label_s *data) return ACCOUNT_ERROR_NONE; } -static int _account_type_gslist_free(GSList* list) +static int _account_type_label_gslist_free(GSList* list) { ACCOUNT_RETURN_VAL((list != NULL), {}, ACCOUNT_ERROR_INVALID_PARAMETER, ("GSlist is NULL")); @@ -1825,15 +1871,72 @@ static int _account_type_gslist_free(GSList* list) return ACCOUNT_ERROR_NONE; } -static int _account_type_item_free(account_type_s *data) +static int _account_type_free_provider_feature_items(provider_feature_s *data) { + if(!data) { + return ACCOUNT_ERROR_INVALID_PARAMETER; + } + + _ACCOUNT_FREE(data->key); + _ACCOUNT_FREE(data->app_id); + + return ACCOUNT_ERROR_NONE; +} + +static int _account_type_provider_feature_gslist_free(GSList* list) +{ + ACCOUNT_RETURN_VAL((list != NULL), {}, ACCOUNT_ERROR_INVALID_PARAMETER, ("GSlist is NULL")); + + GSList* iter; + + for (iter = list; iter != NULL; iter = g_slist_next(iter)) { + provider_feature_s *feature_data = (provider_feature_s*)iter->data; + _account_type_free_provider_feature_items(feature_data); + _ACCOUNT_FREE(feature_data); + } + + g_slist_free(list); + list = NULL; + + return ACCOUNT_ERROR_NONE; +} + +static int _account_type_free_account_type_items(account_type_s *data) +{ + if(!data) { + return ACCOUNT_ERROR_INVALID_PARAMETER; + } + _ACCOUNT_FREE(data->app_id); _ACCOUNT_FREE(data->service_provider_id); _ACCOUNT_FREE(data->icon_path); _ACCOUNT_FREE(data->small_icon_path); + _account_type_label_gslist_free(data->label_list); + _account_type_provider_feature_gslist_free(data->provider_feature_list); +// _account_type_glist_free(data->account_type_list); + return ACCOUNT_ERROR_NONE; } + +static int _account_type_gslist_free(GSList* list) +{ + ACCOUNT_RETURN_VAL((list != NULL), {}, ACCOUNT_ERROR_INVALID_PARAMETER, ("Glist is NULL")); + + GSList* iter; + + for (iter = list; iter != NULL; iter = g_slist_next(iter)) { + account_type_s *account_type_record = (account_type_s*)iter->data; + _account_type_free_account_type_items(account_type_record); + _ACCOUNT_FREE(account_type_record); + } + + g_slist_free(list); + list = NULL; + + return ACCOUNT_ERROR_NONE; +} + /* static int _account_type_glist_free(GList* list) { @@ -1843,7 +1946,7 @@ static int _account_type_glist_free(GList* list) for (iter = list; iter != NULL; iter = g_list_next(iter)) { account_type_s *account_type_record = (account_type_s*)iter->data; - _account_type_item_free(account_type_record); + _account_type_free_account_type_items(account_type_record); _ACCOUNT_FREE(account_type_record); } @@ -1853,16 +1956,6 @@ static int _account_type_glist_free(GList* list) return ACCOUNT_ERROR_NONE; } */ -static int _account_type_free_account_type_items(account_type_s *data) -{ - _account_type_item_free(data); - - _account_type_gslist_free(data->label_list); -// _account_type_gslist_free(data->provider_feature_list); -// _account_type_glist_free(data->account_type_list); - - return ACCOUNT_ERROR_NONE; -} ACCOUNT_API int account_type_create(account_type_h *account_type) { @@ -2111,6 +2204,7 @@ ACCOUNT_API int account_type_query_provider_feature_by_app_id(provider_feature_c } } + _account_type_provider_feature_gslist_free(provider_feature_list); _INFO("account_type_query_provider_feature_by_app_id end"); return error_code; } @@ -2467,6 +2561,8 @@ ACCOUNT_API int account_type_query_label_by_app_id(account_label_cb callback, co } _INFO(""); } + + _account_type_label_gslist_free(label_list); _INFO("account_type_query_label_by_app_id end"); return ACCOUNT_ERROR_NONE; } @@ -2504,15 +2600,14 @@ ACCOUNT_API int account_type_query_by_app_id(const char* app_id, account_type_h ACCOUNT_RETURN_VAL((received_account_type != NULL), {}, ACCOUNT_ERROR_DB_FAILED, ("INVALID DATA RECEIVED FROM SVC")); in_data->id = received_account_type->id; - in_data->app_id = _account_get_text(received_account_type->app_id); - in_data->service_provider_id = _account_get_text(received_account_type->service_provider_id); - in_data->icon_path = _account_get_text(received_account_type->icon_path); - in_data->small_icon_path = _account_get_text(received_account_type->small_icon_path); + in_data->app_id = received_account_type->app_id; + in_data->service_provider_id = received_account_type->service_provider_id; + in_data->icon_path = received_account_type->icon_path; + in_data->small_icon_path = received_account_type->small_icon_path; in_data->multiple_account_support = received_account_type->multiple_account_support; in_data->label_list = received_account_type->label_list; in_data->provider_feature_list = received_account_type->provider_feature_list; - _account_type_item_free(received_account_type); _ACCOUNT_FREE(received_account_type); _INFO("account_type_query_by_app_id end"); return ACCOUNT_ERROR_NONE; @@ -2567,6 +2662,8 @@ ACCOUNT_API int account_type_foreach_account_type_from_db(account_type_cb callba break; } } + + _account_type_gslist_free(account_type_list); _INFO("account_type_foreach_account_type_from_db end"); return ACCOUNT_ERROR_NONE; } @@ -2660,6 +2757,8 @@ ACCOUNT_API int account_type_query_by_provider_feature(account_type_cb callback, } _INFO(""); } + + _account_type_gslist_free(account_type_list); _INFO("account_type_query_by_provider_feature end"); return ACCOUNT_ERROR_NONE; } diff --git a/src/account_offline.c b/src/account_offline.c index b638581..f0b9a17 100644 --- a/src/account_offline.c +++ b/src/account_offline.c @@ -25,11 +25,16 @@ #include #include -#include "account.h" #include "account-private.h" #include "account_internal.h" #include "dbg.h" +#ifdef TIZEN_PROFILE_MOBILE +#include "mobile/account.h" +#else +#include "wearable/account.h" +#endif + #define ACCOUNT_DB_OPEN_READONLY 0 #define ACCOUNT_DB_OPEN_READWRITE 1 diff --git a/src/account_private_client.h b/src/account_private_client.h index 20fc652..ad48a28 100644 --- a/src/account_private_client.h +++ b/src/account_private_client.h @@ -28,9 +28,14 @@ extern "C" { #endif -#include "account.h" #include "account-types.h" +#ifdef TIZEN_PROFILE_MOBILE +#include "mobile/account.h" +#else +#include "wearable/account.h" +#endif + typedef struct _account_subscribe_s { account_event_cb account_subscription_callback;