Allow to set event loop type with api
[platform/core/api/vine.git] / src / vine-session.cpp
index 20528bd..817536b 100755 (executable)
@@ -27,7 +27,7 @@
 using namespace std;
 
 typedef struct {
-       vine_event_queue_h event_fd;
+       vine_event_queue_h event_queue;
 
        vine_discovery_method_e disc_method;
        vine_disc_h disc_handle;
@@ -93,7 +93,7 @@ int _vine_session_create(vine_session_h *session)
        s->discovered = false;
        s->disc_handle = NULL;
 
-       int ret = vine_event_queue_create(&(s->event_fd));
+       int ret = vine_event_queue_create(&(s->event_queue));
        if (ret != VINE_ERROR_NONE) {
                VINE_LOGE("Fail to create eventfd %d", ret);
                free(*session);
@@ -109,7 +109,7 @@ int _vine_session_destroy(vine_session_h session)
        vine_session_s *s = (vine_session_s *)session;
 
        VINE_LOGD("Destroy Session. session[%p]", session);
-       vine_event_queue_destroy(s->event_fd);
+       vine_event_queue_destroy(s->event_queue);
        vine_disc_destroy(s->disc_handle);
        s->disc_handle = NULL;
        free(session);
@@ -221,7 +221,7 @@ int _vine_session_register(vine_session_h session,
 
        ret = vine_disc_publish(s->disc_handle, service, iface_name,
                        __published_cb, session,
-                       s->event_fd);
+                       s->event_queue);
        if (ret != VINE_ERROR_NONE) {
                VINE_LOGE("Fail to vine_disc_publish");
                vine_disc_destroy(s->disc_handle);
@@ -293,9 +293,6 @@ static void __discovered_cb(vine_disc_h disc, bool available,
        ret = _vine_service_create(&discovered_service, false);
        RET_IF(ret != VINE_ERROR_NONE, "Fail to create a service");
 
-       ret = _vine_service_set_disc_handle(discovered_service, disc);
-       RET_IF(ret != VINE_ERROR_NONE, "Fail to set disc_handle");
-
        ret = __vine_set_discovered_service(discovered_service,
                        service_type, service_name, host_name, port, attr, iface_name);
        if (ret != VINE_ERROR_NONE) {
@@ -334,7 +331,7 @@ int _vine_session_start_discovery(vine_session_h session,
 
        ret = vine_disc_subscribe(s->disc_handle, service_type, iface_name,
                        __discovered_cb, session,
-                       s->event_fd);
+                       s->event_queue);
        if (ret != VINE_ERROR_NONE) {
                VINE_LOGE("Fail to vine_disc_subscribe");
                vine_disc_destroy(s->disc_handle);
@@ -385,7 +382,8 @@ static void __ip_resolved_cb(vine_disc_h disc, vine_service_h service, bool add,
 }
 
 int _vine_session_set_ip_resolved_cb(vine_session_h session,
-       vine_service_h service, vine_session_ip_resolved_cb callback, void *user_data)
+       vine_service_h service, vine_address_family_e address_family,
+       vine_session_ip_resolved_cb callback, void *user_data)
 {
        RET_VAL_IF(session == NULL, VINE_ERROR_INVALID_PARAMETER, "session is NULL");
        RET_VAL_IF(service == NULL, VINE_ERROR_INVALID_PARAMETER, "service is NULL");
@@ -396,14 +394,18 @@ int _vine_session_set_ip_resolved_cb(vine_session_h session,
        vine_session_s *s = (vine_session_s *)session;
 
        vine_disc_h disc_handle;
-       ret = _vine_service_get_disc_handle(service, VINE_DISCOVERY_METHOD_DNS_SD, &disc_handle);
-       RET_VAL_IF(ret != VINE_ERROR_NONE, ret, "Fail to _vine_service_get_disc_handle");
+       ret = vine_disc_create(s->disc_method, &disc_handle);
+       RET_VAL_IF(ret != VINE_ERROR_NONE, ret, "Fail to vine_disc_create");
+
+       ret = _vine_service_set_disc_handle(service, disc_handle);
+       RET_VAL_IF(ret != VINE_ERROR_NONE, ret, "Fail to set disc_handle");
 
-       _vine_service_set_ip_resolved_cb(service, callback, user_data);
+       _vine_service_set_address_family(service, address_family);
+       _vine_service_set_ip_resolved_cb(service, session, callback, user_data);
 
        ret = vine_disc_resolve_ip(disc_handle, service,
                        __ip_resolved_cb, session,
-                       s->event_fd);
+                       s->event_queue);
        RET_VAL_IF(ret != VINE_ERROR_NONE, ret, "Fail to vine_disc_resolve_ip");
 
        return VINE_ERROR_NONE;
@@ -422,7 +424,7 @@ int _vine_session_unset_ip_resolved_cb(vine_session_h session,
        ret = _vine_service_get_disc_handle(service, VINE_DISCOVERY_METHOD_DNS_SD, &disc_handle);
        RET_VAL_IF(ret != VINE_ERROR_NONE, ret, "Fail to _vine_service_get_disc_handle");
 
-       _vine_service_set_ip_resolved_cb(service, NULL, NULL);
+       _vine_service_unset_ip_resolved_cb(service);
 
        ret = vine_disc_cancel_resolve_ip(disc_handle, service);
        RET_VAL_IF(ret != VINE_ERROR_NONE, ret, "Fail to vine_disc_cancel_resolve_ip");
@@ -435,7 +437,7 @@ int _vine_session_get_event_queue(vine_session_h session, vine_event_queue_h *eq
        RET_VAL_IF(session == NULL, VINE_ERROR_INVALID_PARAMETER, "session is NULL");
 
        vine_session_s *s = (vine_session_s *)session;
-       *eq = s->event_fd;
+       *eq = s->event_queue;
        return VINE_ERROR_NONE;
 }
 
@@ -444,7 +446,7 @@ int _vine_session_get_event_fd(vine_session_h session, int *fd)
        RET_VAL_IF(session == NULL, VINE_ERROR_INVALID_PARAMETER, "session is NULL");
 
        vine_session_s *s = (vine_session_s *)session;
-       vine_event_loop_get_eventfd(s->event_fd, fd);
+       vine_event_loop_get_eventfd(s->event_queue, fd);
        return VINE_ERROR_NONE;
 }
 
@@ -454,5 +456,5 @@ int _vine_session_process_event(vine_session_h session)
 
        VINE_LOGD("Process event. session[%p]", session);
        vine_session_s *s = (vine_session_s *)session;
-       return vine_event_loop_process(s->event_fd);
+       return vine_event_loop_process(s->event_queue);
 }