[bluetooth-frwk] updateInbox 45/102845/2
authorLukasz Bardeli <l.bardeli@samsung.com>
Tue, 25 Oct 2016 09:57:12 +0000 (11:57 +0200)
committerPyun DoHyun <dh79.pyun@samsung.com>
Thu, 8 Dec 2016 00:18:28 +0000 (16:18 -0800)
Change-Id: Idee948fbab0b451ebecd996895966abffc0e09e1

bt-api/bt-map-client.c
bt-api/bt-request-sender.c
bt-service/bt-request-handler.c
bt-service/bt-service-map-client.c
bt-service/include/bt-service-common.h
bt-service/include/bt-service-map-client.h
include/bluetooth-api.h
include/bt-internal-types.h

index ab2418a..fcd033c 100644 (file)
@@ -74,7 +74,7 @@ BT_EXPORT_API int bluetooth_map_create_session(bt_map_session_info_s* session) {
 }
 
 BT_EXPORT_API int bluetooth_map_destroy_session(bt_map_session_info_s* session) {
-       LOGE("bluetooth_map_destroy_session");
+       BT_DBG("bluetooth_map_destroy_session");
        int result = 0;
 
        BT_CHECK_ENABLED(return);
@@ -100,4 +100,30 @@ BT_EXPORT_API int bluetooth_map_destroy_session(bt_map_session_info_s* session)
 
 
 
+BT_EXPORT_API int bluetooth_map_update_inbox(bt_map_session_info_s* session)
+{
+       BT_DBG("bluetooth_map_update_inbox");
+       int result;
+
+       BT_CHECK_ENABLED(return);
+       BT_CHECK_PARAMETER(session->session_path, return);
+
+       BT_INIT_PARAMS();
+       BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+
+       g_array_append_vals(in_param1, session->session_path, strlen(session->session_path)+1);
+
+       result = _bt_send_request(BT_OBEX_SERVICE, BT_MAP_UPDATE_INBOX,
+               in_param1, in_param2, in_param3, in_param4, &out_param);
+
+       if (result != BLUETOOTH_ERROR_NONE) {
+               BT_ERR("bluetooth_map_update_inbox failed");
+               return BLUETOOTH_ERROR_INTERNAL;
+       }
+
+       BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+
+       return result;
+}
+
 /* TODO: MAP API */
index ddb1cb5..e775e31 100644 (file)
@@ -315,7 +315,7 @@ 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_444) {
+                       } else if (cb_data->service_function == BT_MAP_555) {
                                /* TODO: MAP service functions */
                        }
 
index 51b9570..5839880 100644 (file)
@@ -2284,6 +2284,16 @@ int __bt_obexd_request(int function_name,
                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");
 
index b42e1fa..6824e50 100644 (file)
@@ -33,7 +33,7 @@
 #include "bt-service-obex-agent.h"
 #include "bt-service-adapter.h"
 
-#define DBUS_TIEMOUT 20 * 1000  /* 20 Seconds */
+#define DBUS_TIMEOUT 20 * 1000  /* 20 Seconds */
 
 bt_session_info_t *session_info;
 
@@ -129,7 +129,7 @@ static int _bt_remove_session()
        g_dbus_proxy_call(session_proxy, "RemoveSession",
                g_variant_new("(o)", session_info->session_path),
                G_DBUS_CALL_FLAGS_NONE,
-               DBUS_TIEMOUT, NULL,
+               DBUS_TIMEOUT, NULL,
                (GAsyncReadyCallback)__bt_session_release_cb,
                NULL);
 
@@ -311,8 +311,6 @@ int _bt_destroy_session_sync(char* session_id)
 
        GVariant *param = g_variant_new("(o)", session_id);
 
-       char* string = g_variant_print (param, true);
-
        GVariant *value = g_dbus_proxy_call_sync(session_proxy, "RemoveSession", param,
                        G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
        if (err != NULL) {
@@ -325,4 +323,47 @@ int _bt_destroy_session_sync(char* session_id)
 
        return BLUETOOTH_ERROR_NONE;
 }
+
+int _bt_map_client_update_inbox(char* session_id)
+{
+       BT_DBG("+");
+
+       GError *err = NULL;
+       GDBusConnection *g_conn;
+       GDBusProxy *message_proxy;
+       GVariantBuilder *builder;
+       GVariant *ret = NULL;
+
+       g_conn = _bt_gdbus_get_session_gconn();
+       ret_if(g_conn == NULL);
+
+       GVariant *param = g_variant_new("(o)", session_id);
+
+       message_proxy = g_dbus_proxy_new_sync(g_conn,
+               G_DBUS_PROXY_FLAGS_NONE, NULL,
+               BT_OBEX_SERVICE_NAME, session_id,
+               BT_OBEX_MESSAGE_INTERFACE, NULL, &err);
+
+       retv_if(message_proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
+
+       ret = g_dbus_proxy_call_sync(message_proxy,
+                               "UpdateInbox", g_variant_new("()"),
+                               G_DBUS_CALL_FLAGS_NONE, -1,
+                               NULL, &err);
+
+       if (ret == NULL) {
+               if (err != NULL) {
+                       BT_ERR("UpdateInbox Error: %s\n", err->message);
+                       g_error_free(err);
+               }
+       } else {
+               g_variant_unref(ret);
+       }
+
+       g_object_unref(message_proxy);
+
+       BT_DBG("-");
+
+       return BLUETOOTH_ERROR_NONE;
+}
 /* TODO: MAP */
index 84a5677..d89f691 100644 (file)
@@ -184,7 +184,7 @@ extern "C" {
 #define BT_OBEX_CLIENT_PATH "/org/bluez/obex"
 #define BT_OBEX_CLIENT_INTERFACE "org.bluez.obex.Client1"
 
-
+#define BT_OBEX_MESSAGE_INTERFACE "org.bluez.obex.MessageAccess1"
 
 #define BT_OBEX_TRANSFER_INTERFACE "org.bluez.obex.Transfer1"
 #define BT_OBEX_AGENT_INTERFACE "org.bluez.obex.Agent1"
index b1aebd5..b18f201 100644 (file)
@@ -64,6 +64,7 @@ typedef struct {
 
 int _bt_create_session_sync(char* address, char** session_id);
 int _bt_destroy_session_sync(char* session_id);
+int _bt_map_client_update_inbox(char* session_id);
 /* TODO: MAP */
 
 #ifdef __cplusplus
index 3e17ac0..25f2ca0 100644 (file)
@@ -4865,6 +4865,23 @@ int bluetooth_map_init(void);
 
  int bluetooth_map_destroy_session(bt_map_session_info_s* session);
 
+/**
+ * @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 */
 
 
index d16feaf..ab0b05a 100644 (file)
@@ -259,8 +259,8 @@ 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_444,
        BT_MAP_555,
        BT_MAP_666,
        BT_OBEX_SERVER_ALLOCATE,