" <interface name='" DBUS_IFACE "'>"
" <method name='" METHOD_REQUEST "'>"
" <arg type='i' name='" ARG_REQTYPE "' direction='in'/>"
- " <arg type='s' name='" ARG_COOKIE "' direction='in'/>"
" <arg type='i' name='" ARG_REQID "' direction='in'/>"
" <arg type='s' name='" ARG_SUBJECT "' direction='in'/>"
" <arg type='s' name='" ARG_INPUT "' direction='in'/>"
" <arg type='i' name='" ARG_RESULT_ERR "' direction='out'/>"
- " <arg type='s' name='" ARG_RESULT_ADD "' direction='out'/>"
- " <arg type='s' name='" ARG_OUTPUT "' direction='out'/>"
" </method>"
" <method name='" METHOD_CHK_PRIV_NETWORK_GET "'>"
" <arg type='i' name='" ARG_RESULT_ERR "' direction='out'/>"
static void __handle_request(GDBusConnection* conn, const char *sender, GVariant *param, GDBusMethodInvocation *invocation)
{
gint req_type = 0;
- const gchar *cookie = NULL;
gint req_id = 0;
const gchar *subject = NULL;
const gchar *input = NULL;
- g_variant_get(param, "(i&si&s&s)", &req_type, &cookie, &req_id, &subject, &input);
- IF_FAIL_VOID_TAG(req_type > 0 && req_id > 0 && cookie && subject && input, _E, "Invalid request");
+ g_variant_get(param, "(ii&s&s)", &req_type, &req_id, &subject, &input);
+ IF_FAIL_VOID_TAG(req_type > 0 && req_id > 0 && subject && input, _E, "Invalid request");
- _SD("Cookie: %s", cookie);
_I("[%s] ReqId: %d, Subject: %s", __req_type_to_str(req_type), req_id, subject);
_SI("Input: %s", input);
if (!conv::peer_creds::get(conn, sender, &creds)) {
_E("Peer credentialing failed");
- g_dbus_method_invocation_return_value(invocation, g_variant_new("(iss)", CONV_ERROR_INVALID_OPERATION, EMPTY_JSON_OBJECT, EMPTY_JSON_OBJECT));
+ g_dbus_method_invocation_return_value(invocation, g_variant_new("(i)", CONV_ERROR_INVALID_OPERATION));
return;
}
recvRequest = new conv::Request(req_type, DEFAULT_APP_ID, req_id, subject, input, sender, creds, invocation);
} catch (std::bad_alloc& ba) {
_E("Memory Allocation Failed..");
- g_dbus_method_invocation_return_value(invocation, g_variant_new("(iss)", CONV_ERROR_INVALID_OPERATION, EMPTY_JSON_OBJECT, EMPTY_JSON_OBJECT));
+ g_dbus_method_invocation_return_value(invocation, g_variant_new("(i)", CONV_ERROR_INVALID_OPERATION));
delete creds;
return;
} catch (int e) {
_E("Caught %d", e);
- g_dbus_method_invocation_return_value(invocation, g_variant_new("(iss)", CONV_ERROR_INVALID_OPERATION, EMPTY_JSON_OBJECT, EMPTY_JSON_OBJECT));
+ g_dbus_method_invocation_return_value(invocation, g_variant_new("(i)", CONV_ERROR_INVALID_OPERATION));
delete creds;
return;
}
if (!recvRequest) {
_E("Memory allocation failed");
- g_dbus_method_invocation_return_value(invocation, g_variant_new("(iss)", CONV_ERROR_INVALID_OPERATION, EMPTY_JSON_OBJECT, EMPTY_JSON_OBJECT));
+ g_dbus_method_invocation_return_value(invocation, g_variant_new("(i)", CONV_ERROR_INVALID_OPERATION));
delete creds;
return;
}
_I("Reply %#x", error);
- g_dbus_method_invocation_return_value(__invocation, g_variant_new("(iss)", error, EMPTY_JSON_OBJECT, EMPTY_JSON_OBJECT));
+ g_dbus_method_invocation_return_value(__invocation, g_variant_new("(i)", error));
__invocation = NULL;
_D("Reply done");
return true;
}
-bool conv::Request::reply(int error, Json& requestResult)
-{
- IF_FAIL_RETURN(__invocation, true);
- IF_FAIL_RETURN(__type != REQ_READ_SYNC, true);
-
- char *result = requestResult.dupCstr();
- IF_FAIL_RETURN_TAG(result, false, _E, "Memory allocation failed");
-
- _I("Reply %#x", error);
- _SD("Result: %s", result);
-
- g_dbus_method_invocation_return_value(__invocation, g_variant_new("(iss)", error, result, EMPTY_JSON_OBJECT));
- __invocation = NULL;
-
- g_free(result);
- return true;
-}
-
-bool conv::Request::reply(int error, Json& requestResult, Json& readData)
-{
- if (__invocation == NULL) {
- return publish(error, readData);
- }
-
- char *result = NULL;
- char *data = NULL;
-
- result = requestResult.dupCstr();
- IF_FAIL_CATCH_TAG(result, _E, "Memory allocation failed");
-
- data = readData.dupCstr();
- IF_FAIL_CATCH_TAG(data, _E, "Memory allocation failed");
-
- _I("Reply %#x", error);
- _SD("Result: %s", result);
- _SD("Data: %s", data);
-
- g_dbus_method_invocation_return_value(__invocation, g_variant_new("(iss)", error, result, data));
- __invocation = NULL;
-
- g_free(result);
- g_free(data);
- return true;
-
-CATCH:
- g_free(result);
- g_free(data);
- return false;
-}
-
bool conv::Request::publish(int error, conv::Json& data)
{
char *dataStr = data.dupCstr();
Json& getDescription();
Credentials *getCreds();
bool reply(int error);
- bool reply(int error, Json &requestResult);
- bool reply(int error, Json &requestResult, Json &readData);
bool publish(int error, Json &data);
bool getChannelFromDescription(Json* target);
int req_id;
const char* input = const_cast<const char*> (input_data.str().c_str());
_D("input:%s", input);
- int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_DISCOVERY_START, input_data.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_DISCOVERY_START, input_data.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Failed in starting flow service");
callback_map[req_id] = cb_info;
ASSERT_NOT_NULL(handle);
int req_id;
- int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_DISCOVERY_STOP, NULL, NULL, NULL);
+ int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_DISCOVERY_STOP, NULL);
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Failed in starting flow service");
return CONV_ERROR_NONE;
int req_id;
- int err = conv::dbus_client::request(REQ_SUBSCRIBE, &req_id, CONV_SUBJECT_COMMUNICATION_RECV, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_SUBSCRIBE, &req_id, CONV_SUBJECT_COMMUNICATION_RECV, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Getting list failed");
return CONV_ERROR_NONE;
description.set(NULL, CONV_JSON_IS_LOCAL, handle->is_local);
int req_id;
- int err = conv::dbus_client::request(REQ_UNSUBSCRIBE, &req_id, CONV_SUBJECT_COMMUNICATION_RECV, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_UNSUBSCRIBE, &req_id, CONV_SUBJECT_COMMUNICATION_RECV, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Unset observe failed");
std::map<std::string, _conv_service_callback_info*>::iterator it = callback_map.find(description.str());
description.set(NULL, CONV_JSON_TYPE, type);
description.set(NULL, CONV_JSON_IS_LOCAL, handle->is_local);
- int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_COMMUNICATION_START, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_COMMUNICATION_START, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Failed in starting flow service");
return CONV_ERROR_NONE;
description.set(NULL, CONV_JSON_TYPE, type);
description.set(NULL, CONV_JSON_IS_LOCAL, handle->is_local);
- int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_COMMUNICATION_GET, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_COMMUNICATION_GET, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Failed in starting flow service");
return CONV_ERROR_NONE;
description.set(NULL, CONV_JSON_TYPE, type);
description.set(NULL, CONV_JSON_IS_LOCAL, handle->is_local);
- int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_COMMUNICATION_STOP, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_COMMUNICATION_STOP, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Failed in starting flow service");
return CONV_ERROR_NONE;
description.set(NULL, CONV_JSON_TYPE, type);
description.set(NULL, CONV_JSON_IS_LOCAL, handle->is_local);
- int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_COMMUNICATION_SET, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_COMMUNICATION_SET, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Failed in starting flow service");
return CONV_ERROR_NONE;
int req_id;
- int err = conv::dbus_client::request(REQ_SUBSCRIBE, &req_id, CONV_SUBJECT_CONNECTION_START, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_SUBSCRIBE, &req_id, CONV_SUBJECT_CONNECTION_START, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Getting list failed");
return CONV_ERROR_NONE;
description.set(NULL, CONV_JSON_IS_LOCAL, handle->is_local);
int req_id;
- int err = conv::dbus_client::request(REQ_UNSUBSCRIBE, &req_id, CONV_SUBJECT_CONNECTION_START, NULL, NULL, NULL);
+ int err = conv::dbus_client::request(REQ_UNSUBSCRIBE, &req_id, CONV_SUBJECT_CONNECTION_START, NULL);
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Unset observe failed");
std::map<std::string, _conv_service_connect_callback_info*>::iterator it = connect_callback_map.find(description.str());
conv_service_set_connected_cb(handle, description, callback, user_data);
- int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_CONNECTION_START, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_CONNECTION_START, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Failed in starting flow service");
return CONV_ERROR_NONE;
description.set(NULL, CONV_JSON_DEVICE, device);
description.set(NULL, CONV_JSON_IS_LOCAL, handle->is_local);
- int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_CONNECTION_STOP, description.str().c_str(), NULL, NULL);
+ int err = conv::dbus_client::request(REQ_WRITE, &req_id, CONV_SUBJECT_CONNECTION_STOP, description.str().c_str());
IF_FAIL_RETURN_TAG(err == CONV_ERROR_NONE, err, _E, "Failed in starting flow service");
return CONV_ERROR_NONE;
}
int conv::dbus_client::request(
- int type, int* req_id, const char* subject, const char* input,
- std::string* req_result, std::string* data_read)
+ int type, int* req_id, const char* subject, const char* input)
{
_D("Requesting: %d, %s", type, subject);
IF_FAIL_RETURN_TAG(init(), CONV_ERROR_INVALID_OPERATION, _E, "Connection failed");
*req_id = get_req_id();
// second param is security cookie which is deprecated in 3.0
- GVariant *param = g_variant_new("(isiss)", type, "", *req_id, subject, input);
+ GVariant *param = g_variant_new("(iiss)", type, *req_id, subject, input);
IF_FAIL_RETURN_TAG(param, CONV_ERROR_OUT_OF_MEMORY, _E, "Memory allocation failed");
GError *err = NULL;
IF_FAIL_RETURN_TAG(response, CONV_ERROR_INVALID_OPERATION, _E, "Method call failed");
gint _error = CONV_ERROR_INVALID_OPERATION;
- const gchar *_req_result = NULL;
- const gchar *_data_read = NULL;
- g_variant_get(response, "(i&s&s)", &_error, &_req_result, &_data_read);
- if (req_result) {
- *req_result = _req_result; //LCOV_EXCL_LINE
- }
- if (data_read) {
- *data_read = _data_read; //LCOV_EXCL_LINE
- }
+ g_variant_get(response, "(i)", &_error);
g_variant_unref(response);
*req_id = get_req_id();
// second param is security cookie which is deprecated in 3.0
- GVariant *param = g_variant_new("(isiss)", type, "", req_id, subject, input);
+ GVariant *param = g_variant_new("(iiss)", type, req_id, subject, input);
IF_FAIL_RETURN_TAG(param, CONV_ERROR_OUT_OF_MEMORY, _E, "Memory allocation failed");
GError *err = NULL;
bool init();
void release();
- int request(int type, int* req_id, const char* subject, const char* input, std::string* req_result, std::string* data_read);
+ int request(int type, int* req_id, const char* subject, const char* input);
int request_with_no_reply(int type, int* req_id, const char* subject, const char* input);
int register_callback(const char* subject, subject_response_cb callback);
int call(const char* subject);