From e7d9406f3a233c7c77a94582c051b5f0daa713ec Mon Sep 17 00:00:00 2001
From: Piotr Dabrowski
Date: Wed, 26 Oct 2016 17:46:50 +0200
Subject: [PATCH] [bluetooth-frwk] API defines
Change-Id: I908dc6e6410c91c8c4b6b483658b796d0e2ccfb9
---
bt-api/bt-map-client.c | 110 +++++++++++++++++++++-----
bt-api/bt-request-sender.c | 7 +-
bt-service/bt-request-handler.c | 49 ++++++++++--
bt-service/bt-service-map-client.c | 75 ++++++++++++++++--
bt-service/include/bt-service-map-client.h | 26 ++++--
include/bluetooth-api.h | 123 +++++++++++++----------------
include/bt-internal-types.h | 9 ++-
7 files changed, 285 insertions(+), 114 deletions(-)
diff --git a/bt-api/bt-map-client.c b/bt-api/bt-map-client.c
index 6c6b3de..a476881 100644
--- a/bt-api/bt-map-client.c
+++ b/bt-api/bt-map-client.c
@@ -16,6 +16,7 @@
*/
#include
+#include
#include "bluetooth-api.h"
#include "bt-internal-types.h"
@@ -28,9 +29,9 @@
#include "bt-dpm.h"
#endif
-BT_EXPORT_API int bluetooth_map_init(void)
+BT_EXPORT_API int bluetooth_map_client_init(void)
{
- BT_DBG("bluetooth_map_init");
+ BT_DBG("bluetooth_map_client_init");
bt_user_info_t *user_info;
user_info = _bt_get_user_data(BT_COMMON);
@@ -39,15 +40,17 @@ BT_EXPORT_API int bluetooth_map_init(void)
return _bt_register_event(BT_MAP_CLIENT_EVENT, user_info->cb, user_info->user_data);
}
-BT_EXPORT_API int bluetooth_map_deinit(void)
+BT_EXPORT_API int bluetooth_map_client_deinit(void)
{
- BT_DBG("bluetooth_map_deinit");
+ BT_DBG("bluetooth_map_client_deinit");
return _bt_unregister_event(BT_MAP_CLIENT_EVENT);
}
-BT_EXPORT_API int bluetooth_map_create_session(bt_map_session_info_s* session) {
- BT_DBG("bluetooth_map_create_session");
- int result = 0;
+BT_EXPORT_API int bluetooth_map_client_create_session(
+ bt_map_client_session_info_s *session)
+{
+ BT_DBG("bluetooth_map_client_create_session");
+ int result = BLUETOOTH_ERROR_INTERNAL;
BT_CHECK_ENABLED(return);
BT_CHECK_PARAMETER(session->remote_address, return);
@@ -73,9 +76,11 @@ BT_EXPORT_API int bluetooth_map_create_session(bt_map_session_info_s* session) {
return result;
}
-BT_EXPORT_API int bluetooth_map_destroy_session(bt_map_session_info_s* session) {
- BT_DBG("bluetooth_map_destroy_session");
- int result = 0;
+BT_EXPORT_API int bluetooth_map_client_destroy_session(
+ bt_map_client_session_info_s *session)
+{
+ BT_DBG("bluetooth_map_client_destroy_session");
+ int result = BLUETOOTH_ERROR_INTERNAL;
BT_CHECK_ENABLED(return);
BT_CHECK_PARAMETER(session->session_path, return);
@@ -98,12 +103,12 @@ BT_EXPORT_API int bluetooth_map_destroy_session(bt_map_session_info_s* session)
return result;
}
-BT_EXPORT_API int bluetooth_map_set_folder(
- bt_map_session_info_s* session,
- const char* name)
+BT_EXPORT_API int bluetooth_map_client_set_folder(
+ bt_map_client_session_info_s *session,
+ const char *name)
{
- BT_DBG("bluetooth_map_set_folder");
- int result;
+ BT_DBG("bluetooth_map_client_set_folder");
+ int result = BLUETOOTH_ERROR_INTERNAL;
BT_CHECK_ENABLED(return);
BT_CHECK_PARAMETER(session->session_path, return);
@@ -119,7 +124,7 @@ BT_EXPORT_API int bluetooth_map_set_folder(
in_param1, in_param2, in_param3, in_param4, &out_param);
if (result != BLUETOOTH_ERROR_NONE) {
- BT_ERR("bluetooth_map_set_folder failed");
+ BT_ERR("bluetooth_map_client_set_folder failed");
return BLUETOOTH_ERROR_INTERNAL;
}
@@ -128,10 +133,47 @@ BT_EXPORT_API int bluetooth_map_set_folder(
return result;
}
-BT_EXPORT_API int bluetooth_map_update_inbox(bt_map_session_info_s* session)
+BT_EXPORT_API int bluetooth_map_client_list_folders(
+ bt_map_client_session_info_s *session,
+ GVariant *filter)
+{
+ BT_DBG("bluetooth_map_client_list_folders");
+ int result = BLUETOOTH_ERROR_INTERNAL;
+
+ /* TODO: MAP */
+
+ return result;
+}
+
+BT_EXPORT_API int bluetooth_map_client_list_filter_fields(
+ bt_map_client_session_info_s *session)
+{
+ BT_DBG("bluetooth_map_client_list_filter_fields");
+ int result = BLUETOOTH_ERROR_INTERNAL;
+
+ /* TODO: MAP */
+
+ return result;
+}
+
+BT_EXPORT_API int bluetooth_map_client_list_messages(
+ bt_map_client_session_info_s *session,
+ const char *folder,
+ GVariant *filter)
+{
+ BT_DBG("bluetooth_map_client_list_messages");
+ int result = BLUETOOTH_ERROR_INTERNAL;
+
+ /* TODO: MAP */
+
+ return result;
+}
+
+BT_EXPORT_API int bluetooth_map_client_update_inbox(
+ bt_map_client_session_info_s *session)
{
- BT_DBG("bluetooth_map_update_inbox");
- int result;
+ BT_DBG("bluetooth_map_client_update_inbox");
+ int result = BLUETOOTH_ERROR_INTERNAL;
BT_CHECK_ENABLED(return);
BT_CHECK_PARAMETER(session->session_path, return);
@@ -145,7 +187,7 @@ BT_EXPORT_API int bluetooth_map_update_inbox(bt_map_session_info_s* session)
in_param1, in_param2, in_param3, in_param4, &out_param);
if (result != BLUETOOTH_ERROR_NONE) {
- BT_ERR("bluetooth_map_update_inbox failed");
+ BT_ERR("bluetooth_map_client_update_inbox failed");
return BLUETOOTH_ERROR_INTERNAL;
}
@@ -154,4 +196,30 @@ BT_EXPORT_API int bluetooth_map_update_inbox(bt_map_session_info_s* session)
return result;
}
-/* TODO: MAP API */
+BT_EXPORT_API int bluetooth_map_client_push_message(
+ bt_map_client_session_info_s *session,
+ const char *source_file,
+ const char *folder,
+ GVariant *args)
+{
+ BT_DBG("bluetooth_map_client_push_message");
+ int result = BLUETOOTH_ERROR_INTERNAL;
+
+ /* TODO: MAP */
+
+ return result;
+}
+
+BT_EXPORT_API int bluetooth_map_client_get_message(
+ bt_map_client_session_info_s *session,
+ const char *message_object_name,
+ const char *target_file,
+ bool attachment)
+{
+ BT_DBG("bluetooth_map_client_get_message");
+ int result = BLUETOOTH_ERROR_INTERNAL;
+
+ /* TODO: MAP */
+
+ return result;
+}
diff --git a/bt-api/bt-request-sender.c b/bt-api/bt-request-sender.c
index c0d05b0..be6ab8d 100644
--- a/bt-api/bt-request-sender.c
+++ b/bt-api/bt-request-sender.c
@@ -315,9 +315,12 @@ static void __send_request_cb(GDBusProxy *proxy,
request_id = g_array_index(out_param1, int, 0);
BT_DBG("request_id : %d", request_id);
_bt_add_push_request_id(request_id);
- } else if (cb_data->service_function == BT_MAP_XXX) {
- /* TODO: MAP service functions */
}
+ /* TODO: MAP service functions:
+ else if (cb_data->service_function == BT_MAP_XXX) {
+
+ }
+ */
goto done;
}
diff --git a/bt-service/bt-request-handler.c b/bt-service/bt-request-handler.c
index 3273b2a..eb92aa5 100644
--- a/bt-service/bt-request-handler.c
+++ b/bt-service/bt-request-handler.c
@@ -2265,7 +2265,7 @@ int __bt_obexd_request(int function_name,
case BT_MAP_CREATE_SESSION: {
BT_DBG("BT_MAP_CREATE_SESSION");
char *address = (char *)g_variant_get_data(in_param1);
- char* session_id = NULL;
+ char *session_id = NULL;
result = _bt_create_session_sync(address, &session_id);
if (result == BLUETOOTH_ERROR_NONE) {
g_array_append_vals(*out_param1, session_id, strlen(session_id)+1);
@@ -2280,7 +2280,6 @@ int __bt_obexd_request(int function_name,
if (result == BLUETOOTH_ERROR_NONE) {
BT_DBG("successfully destroyed session");
}
- free(session_id);
break;
}
@@ -2292,24 +2291,58 @@ int __bt_obexd_request(int function_name,
break;
}
+ case BT_MAP_LIST_FOLDERS: {
+ BT_DBG("BT_MAP_LIST_FOLDERS");
+
+ /* TODO: MAP */
+
+ result = BLUETOOTH_ERROR_NOT_SUPPORT;
+ break;
+ }
+
+ case BT_MAP_LIST_FILTER_FIELDS: {
+ BT_DBG("BT_MAP_LIST_FILTER_FIELDS");
+
+ /* TODO: MAP */
+
+ result = BLUETOOTH_ERROR_NOT_SUPPORT;
+ break;
+ }
+
+ case BT_MAP_LIST_MESSAGES: {
+ BT_DBG("BT_MAP_LIST_MESSAGES");
+
+ /* TODO: MAP */
+
+ result = BLUETOOTH_ERROR_NOT_SUPPORT;
+ break;
+ }
+
case BT_MAP_UPDATE_INBOX: {
BT_DBG("BT_MAP_UPDATE_INBOX");
-
char* session_id = (char *)g_variant_get_data(in_param1);
-
result = _bt_map_client_update_inbox(session_id);
- free(session_id);
break;
}
- case BT_MAP_LIST_FOLDERS: {
- BT_DBG("BT_MAP_LIST_FOLDERS");
+ case BT_MAP_PUSH_MESSAGE: {
+ BT_DBG("BT_MAP_PUSH_MESSAGE");
+
+ /* TODO: MAP */
+
+ result = BLUETOOTH_ERROR_NOT_SUPPORT;
+ break;
+ }
+
+ case BT_MAP_GET_MESSAGE: {
+ BT_DBG("BT_MAP_GET_MESSAGE");
+
+ /* TODO: MAP */
result = BLUETOOTH_ERROR_NOT_SUPPORT;
break;
}
- /* TODO: MAP? MAP functions, see above */
case BT_OBEX_SERVER_ALLOCATE: {
int app_pid;
gboolean is_native;
diff --git a/bt-service/bt-service-map-client.c b/bt-service/bt-service-map-client.c
index 3ebba02..3eac5c5 100644
--- a/bt-service/bt-service-map-client.c
+++ b/bt-service/bt-service-map-client.c
@@ -230,7 +230,7 @@ static int __bt_opp_client_start_XXXXXXXXXX(int request_id, char *address
/* TODO: MAP */
}
-int _bt_create_session_sync(char* address, char** session_id)
+int _bt_create_session_sync(const char* address, char** session_id)
{
BT_DBG("Entered SERVICE create session");
GDBusConnection *g_conn;
@@ -285,7 +285,7 @@ int _bt_create_session_sync(char* address, char** session_id)
return BLUETOOTH_ERROR_NONE;
}
-int _bt_destroy_session_sync(char* session_id)
+int _bt_destroy_session_sync(const char* session_id)
{
BT_DBG("Entered SERVICE destroy session with id: \"%s\"", session_id);
GDBusConnection *g_conn;
@@ -324,7 +324,7 @@ int _bt_destroy_session_sync(char* session_id)
return BLUETOOTH_ERROR_NONE;
}
-int _bt_map_client_set_folder(char* session_id, const char* name)
+int _bt_map_client_set_folder(const char* session_id, const char* name)
{
BT_DBG("+");
@@ -366,7 +366,43 @@ int _bt_map_client_set_folder(char* session_id, const char* name)
return BLUETOOTH_ERROR_NONE;
}
-int _bt_map_client_update_inbox(char* session_id)
+int _bt_map_client_list_folders(const char* session_id, GVariant *filter)
+{
+ BT_DBG("+");
+
+ /* TODO: MAP */
+
+ BT_DBG("-");
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
+int _bt_map_client_list_filter_fields(const char* session_id)
+{
+ BT_DBG("+");
+
+ /* TODO: MAP */
+
+ BT_DBG("-");
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
+int _bt_map_client_list_messages(
+ const char* session_id,
+ const char* folder,
+ GVariant *filter)
+{
+ BT_DBG("+");
+
+ /* TODO: MAP */
+
+ BT_DBG("-");
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
+int _bt_map_client_update_inbox(const char* session_id)
{
BT_DBG("+");
@@ -408,4 +444,33 @@ int _bt_map_client_update_inbox(char* session_id)
return BLUETOOTH_ERROR_NONE;
}
-/* TODO: MAP */
+
+int _bt_map_client_push_message(
+ const char* session_id,
+ const char* source_file,
+ const char* folder,
+ GVariant *args)
+{
+ BT_DBG("+");
+
+ /* TODO: MAP */
+
+ BT_DBG("-");
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
+int _bt_map_client_get_message(
+ const char* session_id,
+ const char* message_object_name,
+ const char* target_file,
+ bool attachment)
+{
+ BT_DBG("+");
+
+ /* TODO: MAP */
+
+ BT_DBG("-");
+
+ return BLUETOOTH_ERROR_NONE;
+}
diff --git a/bt-service/include/bt-service-map-client.h b/bt-service/include/bt-service-map-client.h
index d14f690..4f6e133 100644
--- a/bt-service/include/bt-service-map-client.h
+++ b/bt-service/include/bt-service-map-client.h
@@ -61,12 +61,26 @@ typedef struct {
} bt_session_data_t; /* TODO: "session"? */
-
-int _bt_create_session_sync(char* address, char** session_id);
-int _bt_destroy_session_sync(char* session_id);
-int _bt_map_client_set_folder(char* session_id, const char* name);
-int _bt_map_client_update_inbox(char* session_id);
-/* TODO: MAP */
+int _bt_create_session_sync(const char* address, char** session_id);
+int _bt_destroy_session_sync(const char* session_id);
+int _bt_map_client_set_folder(const char* session_id, const char* name);
+int _bt_map_client_list_folders(const char* session_id, GVariant *filter);
+int _bt_map_client_list_filter_fields(const char* session_id);
+int _bt_map_client_list_messages(
+ const char* session_id,
+ const char* folder,
+ GVariant *filter);
+int _bt_map_client_update_inbox(const char* session_id);
+int _bt_map_client_push_message(
+ const char* session_id,
+ const char* source_file,
+ const char* folder,
+ GVariant *args);
+int _bt_map_client_get_message(
+ const char* session_id,
+ const char* message_object_name,
+ const char* target_file,
+ bool attachment);
#ifdef __cplusplus
}
diff --git a/include/bluetooth-api.h b/include/bluetooth-api.h
index 92bc51a..e7a6951 100644
--- a/include/bluetooth-api.h
+++ b/include/bluetooth-api.h
@@ -19,6 +19,7 @@
#define _BLUETOOTH_API_H_
#include
+#include
#include
#include
@@ -1790,12 +1791,10 @@ typedef struct {
char if_name[16];
} bt_ipsp_connection_info_t;
-
-/* TODO MAP structures */
typedef struct {
char* session_path;
char* remote_address;
-} bt_map_session_info_s;
+} bt_map_client_session_info_s;
/**
* Callback pointer type
@@ -4824,7 +4823,7 @@ int bluetooth_obex_server_is_receiving(gboolean *is_receiving);
/**
- * @fn int bluetooth_map_init(void)
+ * @fn int bluetooth_map_client_init(void)
* @brief Initialize MAP client.
*
* This function is a synchronous call.
@@ -4839,71 +4838,57 @@ int bluetooth_obex_server_is_receiving(gboolean *is_receiving);
* @exception None
*
* @remark None
- * @see bluetooth_map_deinit
- */
-int bluetooth_map_init(void);
-
-/**
- * @fn int bluetooth_map_deinit(void)
- * @brief Deinitialize MAP client.
- *
- * This function is a synchronous call.
- * No event corresponding to this api
- *
- * @return BLUETOOTH_ERROR_NONE - Success \n
- * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
- * BLUETOOTH_ERROR_ACCESS_DENIED -Memory allocation failed \n
- *
- * @exception None
- *
- * @remark None
- * @see bluetooth_map_init
- */
- int bluetooth_map_deinit(void);
-
- int bluetooth_map_create_session(bt_map_session_info_s* s);
-
- int bluetooth_map_destroy_session(bt_map_session_info_s* session);
-
- /**
- * @fn int bluetooth_map_set_folder(const char *name)
- * @brief Request set folder.
- *
- * This function is a synchronous call.
- * No event corresponding to this api
- *
- * @return BLUETOOTH_ERROR_NONE - Success \n
- * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
- * BLUETOOTH_ERROR_INTERNAL - Update inbox failed \n
- *
- * @exception None
- * @param[in] name Folder name.
- * @param[in] remote_address The remote device Bd address.
- * @remark None
- */
- int bluetooth_map_set_folder(
- bt_map_session_info_s* session,
- const char *name
- );
-
-/**
- * @fn int bluetooth_map_update_inbox(void)
- * @brief Request remote to update its inbox.
- *
- * This function is a synchronous call.
- * No event corresponding to this api
- *
- * @return BLUETOOTH_ERROR_NONE - Success \n
- * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
- * BLUETOOTH_ERROR_INTERNAL - Update inbox failed \n
- *
- * @exception None
- * @param[in] session Information about session.
- * @remark None
- */
- int bluetooth_map_update_inbox(bt_map_session_info_s* session);
-
- /* TODO: MAP, see above */
+ * @see bluetooth_map_client_deinit
+ */
+int bluetooth_map_client_init(void);
+
+int bluetooth_map_client_deinit(void);
+
+int bluetooth_map_client_create_session(
+ bt_map_client_session_info_s *session
+);
+
+int bluetooth_map_client_destroy_session(
+ bt_map_client_session_info_s *session
+);
+
+int bluetooth_map_client_set_folder(
+ bt_map_client_session_info_s *session,
+ const char *name
+);
+
+int bluetooth_map_client_list_folders(
+ bt_map_client_session_info_s *session,
+ GVariant *filter
+);
+
+int bluetooth_map_client_list_filter_fields(
+ bt_map_client_session_info_s *session
+);
+
+int bluetooth_map_client_list_messages(
+ bt_map_client_session_info_s *session,
+ const char *folder,
+ GVariant *filter
+);
+
+int bluetooth_map_client_update_inbox(
+ bt_map_client_session_info_s *session
+);
+
+int bluetooth_map_client_push_message(
+ bt_map_client_session_info_s *session,
+ const char *source_file,
+ const char *folder,
+ GVariant *args
+);
+
+int bluetooth_map_client_get_message(
+ bt_map_client_session_info_s *session,
+ const char *message_object_name,
+ const char *target_file,
+ bool attachment
+);
/**
diff --git a/include/bt-internal-types.h b/include/bt-internal-types.h
index 297b4bd..d9eb63a 100644
--- a/include/bt-internal-types.h
+++ b/include/bt-internal-types.h
@@ -259,10 +259,13 @@ typedef enum {
BT_OPP_GET_TRANSFER_PROGRESS,
BT_MAP_CREATE_SESSION = BT_FUNC_MAP_BASE,
BT_MAP_DESTROY_SESSION,
- BT_MAP_UPDATE_INBOX,
- BT_MAP_LIST_FOLDERS,
BT_MAP_SET_FOLDER,
- BT_MAP_XXX, /* TODO: MAP */
+ BT_MAP_LIST_FOLDERS,
+ BT_MAP_LIST_FILTER_FIELDS,
+ BT_MAP_LIST_MESSAGES,
+ BT_MAP_UPDATE_INBOX,
+ BT_MAP_PUSH_MESSAGE,
+ BT_MAP_GET_MESSAGE,
BT_OBEX_SERVER_ALLOCATE,
BT_OBEX_SERVER_DEALLOCATE,
BT_OBEX_SERVER_IS_ACTIVATED,
--
2.7.4