wifi_aware_enabled_cb callback, void *user_data);
/**
- * @brief
- * @since_tizen 6.0
- * @param[in] error
- * @param[in] user_data
- * @return 0 on success, otherwise a negative error value
- * @retval #WIFI_AWARE_ERROR_NONE
- */
-typedef void(*wifi_aware_disabled_cb)(wifi_aware_error_e error, void *user_data);
-
-/**
* @brief Disable Wi-Fi Aware functions.
- * @remark If Wi-Fi Aware has not been enabled, an error is immediately returend without invoking the callback.
* @since_tizen 6.0
* @param[in] wifi_aware The handle for the Wi-Fi aware
- * @param[in] callback The result of disable request is asynchrously delivered
- * @param[in] user_data User data
* @return 0 on success, otherwise a negative error value
* @retval #WIFI_AWARE_ERROR_NONE
*/
-int wifi_aware_disable(wifi_aware_h wifi_aware,
- wifi_aware_disabled_cb callback, void *user_data);
+int wifi_aware_disable(wifi_aware_h wifi_aware);
/**
* @brief This callback delivers the result of a Publish request.
int wifi_aware_gdbus_enable(wifi_aware_h wifi_aware,
wifi_aware_enable_request_s *req, GAsyncReadyCallback cb);
-int wifi_aware_gdbus_disable(wifi_aware_h wifi_aware, int client_id, GAsyncReadyCallback cb);
+int wifi_aware_gdbus_disable(wifi_aware_h wifi_aware, int client_id);
int wifi_aware_gdbus_publish(wifi_aware_publish_h publish, int client_id, GAsyncReadyCallback cb);
int wifi_aware_gdbus_cancel_publish(wifi_aware_publish_h publish, int client_id);
int wifi_aware_gdbus_update_publish(wifi_aware_publish_h publish, int client_id, GAsyncReadyCallback cb);
int client_id;
wifi_aware_enabled_cb enabled_cb;
void *enabled_cb_data;
- wifi_aware_disabled_cb disabled_cb;
- void *disabled_cb_data;
GHashTable *peer_map;
} wifi_aware_s;
void _add_enabled_callback(wifi_aware_h wifi_aware, wifi_aware_enabled_cb callback, void *user_data);
int _wifi_aware_enable_request(wifi_aware_h wifi_aware);
int _wifi_aware_is_enabled(wifi_aware_h wifi_aware);
-
-void _add_disabled_callback(wifi_aware_h wifi_aware, wifi_aware_disabled_cb callback, void *user_data);
int _wifi_aware_disable_request(wifi_aware_h wifi_aware);
int _wifi_aware_publish_handle_create(wifi_aware_h wifi_aware, wifi_aware_publish_h *publish);
return ret;
}
-int wifi_aware_gdbus_disable(wifi_aware_h wifi_aware, int client_id, GAsyncReadyCallback cb)
+// Should this need to be unified?
+// It is the same as __handle_cancel_*_reply().
+static int __handle_disable_reply(GVariant *reply)
+{
+ int error;
+ g_variant_get(reply, "(i)", &error);
+ WIFI_AWARE_LOGI("Reply for Disable %d", error);
+ return error;
+}
+
+int wifi_aware_gdbus_disable(wifi_aware_h wifi_aware, int client_id)
{
__WIFI_AWARE_FUNC_ENTER__;
int ret = WIFI_AWARE_ERROR_NONE;
+ GVariant *reply = NULL;
- ret = __wifi_aware_dbus_method_call_async(
+ ret = __wifi_aware_dbus_method_call_sync(
WIFI_AWARE_DISCOVERY_INTERFACE,
WIFI_AWARE_DISCOVERY_PATH,
- "Disable", g_variant_new("(i)", client_id), cb, wifi_aware);
+ "Disable", g_variant_new("(i)", client_id), &reply);
- if (ret != WIFI_AWARE_ERROR_NONE) {
- WIFI_AWARE_LOGE("wifi_aware_dbus_method_call_async() failed");
- __WIFI_AWARE_FUNC_EXIT__;
- return ret;
- }
+ RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "Disable failed");
+
+ ret = __handle_disable_reply(reply);
+ g_variant_unref(reply);
__WIFI_AWARE_FUNC_EXIT__;
return ret;
aware->enabled_cb(error, aware->enabled_cb_data);
}
-static wifi_aware_error_e __parse_disable_reply(GVariant *reply, wifi_aware_s *aware)
-{
- int ret;
- wifi_aware_error_e error;
-
- g_variant_get(reply, "(i)", &ret);
- error = _wifi_aware_convert_nan_manager_error(ret);
- if (error == WIFI_AWARE_ERROR_NONE)
- aware->client_id = -1; // reset client_id
-
- return error;
-}
-
-static void __disable_request_reply(GObject *src, GAsyncResult *res, gpointer user_data)
-{
- GDBusConnection *conn = NULL;
- GError *dbus_error = NULL;
- GVariant *reply = NULL;
- wifi_aware_s *aware = (wifi_aware_s *)user_data;
- wifi_aware_error_e error = WIFI_AWARE_ERROR_NONE;
-
- WIFI_AWARE_LOGI("Reply for Disable Request");
-
- conn = G_DBUS_CONNECTION(src);
- reply = g_dbus_connection_call_finish(conn, res, &dbus_error);
-
- if (dbus_error != NULL) {
- WIFI_AWARE_LOGE("Disable Request failure: %s", dbus_error->message);
- error = _wifi_aware_convert_error_string_to_enum(dbus_error->message);
- g_error_free(dbus_error);
- }
-
- error = __parse_disable_reply(reply, aware);
-
- if (aware->disabled_cb)
- aware->disabled_cb(error, aware->enabled_cb_data);
-}
-
static void __add_published_callback(wifi_aware_publish_h publish,
wifi_aware_published_cb callback, void *user_data)
{
return (aware->client_id >= 0 ? 1 : 0);
}
-void _add_disabled_callback(wifi_aware_h wifi_aware,
- wifi_aware_disabled_cb callback, void *user_data)
-{
- wifi_aware_s *aware = (wifi_aware_s *)wifi_aware;
- aware->disabled_cb = callback;
- aware->disabled_cb_data = user_data;
-}
-
int _wifi_aware_disable_request(wifi_aware_h wifi_aware)
{
wifi_aware_s *aware = (wifi_aware_s *)wifi_aware;
- return wifi_aware_gdbus_disable(wifi_aware,
- aware->client_id,
- __disable_request_reply);
+ return wifi_aware_gdbus_disable(wifi_aware, aware->client_id);
}
int _wifi_aware_publish_handle_create(wifi_aware_h wifi_aware, wifi_aware_publish_h *publish)
return WIFI_AWARE_ERROR_NONE;
}
-API int wifi_aware_disable(wifi_aware_h wifi_aware,
- wifi_aware_disabled_cb callback, void *user_data)
+API int wifi_aware_disable(wifi_aware_h wifi_aware)
{
int ret = WIFI_AWARE_ERROR_NONE;
WIFI_AWARE_ERROR_INVALID_OPERATION,
"_wifi_aware_is_enabled");
- _add_disabled_callback(wifi_aware, callback, user_data);
-
ret = _wifi_aware_disable_request(wifi_aware);
RET_VAL_IF(ret != WIFI_AWARE_ERROR_NONE, ret, "_wifi_aware_disable_request");
__print_result(ret, "wifi_aware_enable");
}
-static void __disabled_cb(wifi_aware_error_e error, void *user_data)
-{
- if (error == WIFI_AWARE_ERROR_NONE)
- printf("Wi-Fi Aware is disabled\n");
- else
- printf("Wi-Fi Aware is not disabled. Error: %s\n", __print_error(error));
-}
-
void test_disable()
{
int ret = 0;
RET_IF_LOOP_IS_NULL();
RET_IF_HANDLE_IS_NULL();
- ret = wifi_aware_disable(g_wifi_aware_handle, __disabled_cb, NULL);
+ ret = wifi_aware_disable(g_wifi_aware_handle);
__print_result(ret, "wifi_aware_disable");
}