* Example :
* @code
#include <iotcon.h>
-static void _on_get(iotcon_remote_resource_h resource, iotcon_error_e err,
+static void _on_response_get(iotcon_remote_resource_h resource, iotcon_error_e err,
iotcon_request_type_e request_type, iotcon_response_h response, void *user_data)
{
// handle get from response
iotcon_query_add(query, "key", "value");
- iotcon_remote_resource_get(resource, query, &_on_get, NULL);
+ iotcon_remote_resource_get(resource, query, _on_response_get, NULL);
iotcon_query_destroy(query);
}
...
const char *type = "org.tizen.door";
ret = iotcon_find_resource(IOTCON_MULTICAST_ADDRESS, IOTCON_CONNECTIVITY_IPV4, type,
- &_found_resource, NULL);
+ _found_resource, NULL);
if (IOTCON_ERROR_NONE != ret) {
return;
}
...
static iotcon_remote_resource_h door_resource;
...
-static void _on_observe(iotcon_remote_resource_h resource, iotcon_error_e err,
+static void _on_resopnse_observe(iotcon_remote_resource_h resource, iotcon_error_e err,
iotcon_request_type_e request_type, iotcon_response_h response, void *user_data)
{
}
{
int ret;
ret = iotcon_remote_resource_start_observing(door_resource, IOTCON_OBSERVE_ALL, NULL,
- &_on_observe, NULL);
+ _on_resopnse_observe, NULL);
if (IOTCON_ERROR_NONE != ret)
return;
}
#define DOOR_RESOURCE_URI_PREFIX "/door"
#define DOOR_RESOURCE_TYPE "org.tizen.door"
-static void _on_observe(iotcon_remote_resource_h resource, iotcon_error_e err,
- iotcon_request_type_e request_type, iotcon_response_h response, void *user_data)
+static void _on_response(iotcon_remote_resource_h resource, iotcon_error_e err,
+ iotcon_request_type_e request_type, iotcon_response_h response, void *user_data);
+
+static void _on_resopnse_observe(iotcon_remote_resource_h resource, iotcon_response_h response,
+ void *user_data)
{
- INFO("_on_observe");
+ INFO("_on_resopnse_observe");
static int i = 0;
i++;
}
}
-static void _on_delete(iotcon_remote_resource_h resource, iotcon_error_e err,
- iotcon_request_type_e request_type, iotcon_response_h response, void *user_data)
+static void _on_response_delete(iotcon_remote_resource_h resource, iotcon_response_h response,
+ void *user_data)
{
int ret, response_result;
iotcon_remote_resource_h door_resource = user_data;
- RETM_IF(IOTCON_ERROR_NONE != err, "_on_delete error(%d)", err);
-
ret = iotcon_response_get_result(response, &response_result);
if (IOTCON_ERROR_NONE != ret) {
ERR("iotcon_response_get_result() Fail(%d)", ret);
if (IOTCON_RESPONSE_RESULT_OK != response_result
&& IOTCON_RESPONSE_RESULT_RESOURCE_DELETED != response_result) {
- ERR("_on_delete Response error(%d)", response_result);
+ ERR("_on_response_delete Response error(%d)", response_result);
return;
}
INFO("DELETE request was successful");
/* delete callback operations */
ret = iotcon_remote_resource_start_observing(door_resource, IOTCON_OBSERVE_ALL, NULL,
- _on_observe, NULL);
+ _on_response, NULL);
if (IOTCON_ERROR_NONE != ret)
ERR("iotcon_remote_resource_start_observing() Fail(%d)", ret);
iotcon_remote_resource_destroy(resource);
}
-static void _on_post(iotcon_remote_resource_h resource, iotcon_error_e err,
- iotcon_request_type_e type, iotcon_response_h response, void *user_data)
+static void _on_resopnse_post(iotcon_remote_resource_h resource, iotcon_response_h response,
+ void *user_data)
{
iotcon_state_h recv_state;
char *host, *created_uri_path;
iotcon_remote_resource_h new_door_resource, door_resource;
iotcon_representation_h recv_repr = NULL;
- RETM_IF(IOTCON_ERROR_NONE != err, "_on_post error(%d)", err);
-
ret = iotcon_response_get_result(response, &response_result);
if (IOTCON_ERROR_NONE != ret) {
ERR("iotcon_response_get_result() Fail(%d)", ret);
if (IOTCON_RESPONSE_RESULT_OK != response_result
&& IOTCON_RESPONSE_RESULT_RESOURCE_CREATED != response_result) {
- ERR("_on_post Response error(%d)", response_result);
+ ERR("_on_resopnse_post Response error(%d)", response_result);
return;
}
INFO("POST request was successful");
return;
}
- ret = iotcon_remote_resource_delete(new_door_resource, _on_delete, door_resource);
+ ret = iotcon_remote_resource_delete(new_door_resource, _on_response, door_resource);
if (IOTCON_ERROR_NONE != ret) {
ERR("iotcon_remote_resource_delete() Fail(%d)", ret);
iotcon_remote_resource_destroy(door_resource);
iotcon_remote_resource_destroy(resource);
}
-static void _on_put(iotcon_remote_resource_h resource, iotcon_error_e err,
- iotcon_request_type_e request_type, iotcon_response_h response, void *user_data)
+static void _on_response_put(iotcon_remote_resource_h resource, iotcon_response_h response,
+ void *user_data)
{
int ret;
int response_result;
iotcon_representation_h send_repr;
- RETM_IF(IOTCON_ERROR_NONE != err, "_on_put error(%d)", err);
-
ret = iotcon_response_get_result(response, &response_result);
if (IOTCON_ERROR_NONE != ret) {
ERR("iotcon_response_get_result() Fail(%d)", ret);
}
if (IOTCON_RESPONSE_RESULT_OK != response_result) {
- ERR("_on_put Response error(%d)", response_result);
+ ERR("_on_response_put Response error(%d)", response_result);
return;
}
INFO("PUT request was successful");
}
/* send POST request */
- ret = iotcon_remote_resource_post(resource, send_repr, NULL, _on_post, NULL);
+ ret = iotcon_remote_resource_post(resource, send_repr, NULL, _on_response, NULL);
if (IOTCON_ERROR_NONE != ret)
ERR("iotcon_remote_resource_post() Fail(%d)", ret);
iotcon_representation_destroy(send_repr);
}
-static void _on_get(iotcon_remote_resource_h resource,
- iotcon_error_e err,
- iotcon_request_type_e request_type,
- iotcon_response_h response,
- void *user_data)
+static void _on_response_get(iotcon_remote_resource_h resource,
+ iotcon_response_h response, void *user_data)
{
int ret;
int response_result;
iotcon_state_h send_state;
iotcon_state_h recv_state = NULL;
- RETM_IF(IOTCON_ERROR_NONE != err, "_on_get error(%d)", err);
- INFO("GET request was successful");
-
ret = iotcon_response_get_result(response, &response_result);
if (IOTCON_ERROR_NONE != ret) {
ERR("iotcon_response_get_result() Fail(%d)", ret);
}
if (IOTCON_RESPONSE_RESULT_OK != response_result) {
- ERR("_on_get Response error(%d)", response_result);
+ ERR("_on_response_get Response error(%d)", response_result);
return;
}
iotcon_state_destroy(send_state);
/* send PUT request */
- ret = iotcon_remote_resource_put(resource, send_repr, NULL, _on_put, NULL);
+ ret = iotcon_remote_resource_put(resource, send_repr, NULL, _on_response, NULL);
if (IOTCON_ERROR_NONE != ret)
ERR("iotcon_remote_resource_put() Fail(%d)", ret);
INFO("- Tizen Device ID : %s", tizen_device_id);
}
+static void _on_response(iotcon_remote_resource_h resource, iotcon_error_e err,
+ iotcon_request_type_e request_type, iotcon_response_h response, void *user_data)
+{
+ RETM_IF(IOTCON_ERROR_NONE != err, "_on_response error(%d)", err);
+ INFO("request(%d) was successful", request_type);
+
+ switch (request_type) {
+ case IOTCON_REQUEST_GET:
+ _on_response_get(resource, response, user_data);
+ break;
+ case IOTCON_REQUEST_PUT:
+ _on_response_put(resource, response, user_data);
+ break;
+ case IOTCON_REQUEST_POST:
+ _on_resopnse_post(resource, response, user_data);
+ break;
+ case IOTCON_REQUEST_DELETE:
+ _on_response_delete(resource, response, user_data);
+ break;
+ case IOTCON_REQUEST_OBSERVE:
+ _on_resopnse_observe(resource, response, user_data);
+ break;
+ default:
+ ERR("Invalid request type (%d)", request_type);
+ return;
+ }
+}
+
static void _found_resource(iotcon_remote_resource_h resource, iotcon_error_e result,
void *user_data)
{
/* send GET Request */
- ret = iotcon_remote_resource_get(resource_clone, query, _on_get, NULL);
+ ret = iotcon_remote_resource_get(resource_clone, query, _on_response, NULL);
if (IOTCON_ERROR_NONE != ret)
ERR("iotcon_remote_resource_get() Fail(%d)", ret);
/* find door typed resources */
ret = iotcon_find_resource(IOTCON_MULTICAST_ADDRESS, IOTCON_CONNECTIVITY_IPV4,
- DOOR_RESOURCE_TYPE, &_found_resource, NULL);
+ DOOR_RESOURCE_TYPE, _found_resource, NULL);
if (IOTCON_ERROR_NONE != ret) {
ERR("iotcon_find_resource() Fail(%d)", ret);
iotcon_disconnect();
return IOTCON_FUNC_CONTINUE;
}
-static void _on_get(iotcon_representation_h recv_repr, int response_result)
+static void _print_repr(iotcon_representation_h recv_repr)
{
int i, ret, int_val;
bool is_null, bool_val;
iotcon_state_h recv_state, child_state;
unsigned int key_count, children_count;
- RETM_IF(IOTCON_RESPONSE_RESULT_OK != response_result, "_on_get Response error(%d)",
- response_result);
INFO("GET request was successful");
DBG("[ parent representation ]");
return;
}
- _on_get(recv_repr, response_result);
+ if (IOTCON_RESPONSE_RESULT_OK == response_result)
+ _print_repr(recv_repr);
+ else
+ ERR("Invalid result(%d)", response_result);
+
iotcon_remote_resource_destroy(resource);
}
-static void _on_get_1st(iotcon_remote_resource_h resource,
+static void _on_response_1st(iotcon_remote_resource_h resource,
iotcon_error_e err,
iotcon_request_type_e request_type,
iotcon_response_h response,
return;
}
- _on_get(recv_repr, response_result);
+ if (IOTCON_RESPONSE_RESULT_OK == response_result)
+ _print_repr(recv_repr);
+ else
+ ERR("Invalid result(%d)", response_result);
ret = iotcon_query_create(&query_params);
if (IOTCON_ERROR_NONE != ret) {
}
/* send GET request */
- ret = iotcon_remote_resource_get(cloned_resource, NULL, _on_get_1st, NULL);
+ ret = iotcon_remote_resource_get(cloned_resource, NULL, _on_response_1st, NULL);
if (IOTCON_ERROR_NONE != ret)
ERR("iotcon_remote_resource_get() Fail(%d)", ret);
}
/* find room typed resources */
ret = iotcon_find_resource(IOTCON_MULTICAST_ADDRESS, IOTCON_CONNECTIVITY_IPV4,
- ROOM_RESOURCE_TYPE, &_found_resource, NULL);
+ ROOM_RESOURCE_TYPE, _found_resource, NULL);
if (IOTCON_ERROR_NONE != ret) {
ERR("iotcon_find_resource() Fail(%d)", ret);
iotcon_disconnect();