diff --git a/src/lib/eldbus/eldbus_model_connection.c b/src/lib/eldbus/eldbus_model_connection.c index d7919380de..4ac97e2d55 100644 --- a/src/lib/eldbus/eldbus_model_connection.c +++ b/src/lib/eldbus/eldbus_model_connection.c @@ -37,20 +37,6 @@ _eldbus_model_connection_eo_base_constructor(Eo *obj, Eldbus_Model_Connection_Da return obj; } -/* static void */ -/* _eldbus_model_connection_constructor(Eo *obj EINA_UNUSED, */ -/* Eldbus_Model_Connection_Data *pd, */ -/* int type, */ -/* const char* address, */ -/* Eina_Bool private) */ -/* { */ -/* DBG("(%p)", obj); */ - -/* pd->type = type; */ -/* pd->address = eina_stringshare_add(address); */ -/* pd->private = private; */ -/* } */ - static void _eldbus_model_connection_eo_base_destructor(Eo *obj, Eldbus_Model_Connection_Data *pd) { @@ -269,6 +255,9 @@ _eldbus_model_connection_type_set(Eo *obj EINA_UNUSED, Eldbus_Model_Connection_D static void _eldbus_model_connection_connect(Eldbus_Model_Connection_Data *pd) { + fprintf(stderr, "connecting\n"); + fflush(stderr); + EINA_SAFETY_ON_NULL_RETURN(pd); if (ELDBUS_CONNECTION_TYPE_ADDRESS == pd->type) @@ -357,7 +346,9 @@ _eldbus_model_connection_names_list_cb(void *data, DBG("(%p): bus = %s", pd->obj, bus); Eo *child = eo_add(ELDBUS_MODEL_OBJECT_CLASS, NULL, - eldbus_model_object_connection_constructor(pd->connection, bus, "/")); + eldbus_model_object_connection_set(pd->connection), + eldbus_model_object_bus_set(bus), + eldbus_model_object_path_set("/")); pd->children_list = eina_list_append(pd->children_list, child); } diff --git a/src/lib/eldbus/eldbus_model_object.c b/src/lib/eldbus/eldbus_model_object.c index 3be4638fcc..17a8fe5c91 100644 --- a/src/lib/eldbus/eldbus_model_object.c +++ b/src/lib/eldbus/eldbus_model_object.c @@ -4,6 +4,7 @@ #include "eldbus_model_object_private.h" #include "eldbus_model_private.h" +#include "eldbus_model_connection_private.h" #include @@ -35,9 +36,6 @@ _eldbus_model_object_eo_base_constructor(Eo *obj, Eldbus_Model_Object_Data *pd) pd->object_list = NULL; pd->properties_array = NULL; pd->children_list = NULL; - pd->type = ELDBUS_CONNECTION_TYPE_UNKNOWN; - pd->address = NULL; - pd->private = false; pd->bus = NULL; pd->path = NULL; pd->unique_name = NULL; @@ -48,40 +46,40 @@ _eldbus_model_object_eo_base_constructor(Eo *obj, Eldbus_Model_Object_Data *pd) } static void -_eldbus_model_object_constructor(Eo *obj EINA_UNUSED, - Eldbus_Model_Object_Data *pd, - int type, - const char* address, - Eina_Bool private, - const char* bus, - const char* path) -{ - DBG("(%p)", obj); - EINA_SAFETY_ON_NULL_RETURN(bus); - EINA_SAFETY_ON_NULL_RETURN(path); - - pd->type = type; - pd->address = eina_stringshare_add(address); - pd->private = private; - pd->bus = eina_stringshare_add(bus); - pd->path = eina_stringshare_add(path); -} - -static void -_eldbus_model_object_connection_constructor(Eo *obj EINA_UNUSED, - Eldbus_Model_Object_Data *pd, - Eldbus_Connection *connection, - const char* bus, - const char* path) +_eldbus_model_object_connection_set(Eo *obj EINA_UNUSED, + Eldbus_Model_Object_Data *pd, + Eldbus_Connection *connection) { DBG("(%p)", obj); EINA_SAFETY_ON_NULL_RETURN(connection); - EINA_SAFETY_ON_NULL_RETURN(bus); - EINA_SAFETY_ON_NULL_RETURN(path); pd->connection = eldbus_connection_ref(connection); - pd->bus = eina_stringshare_add(bus); - pd->path = eina_stringshare_add(path); +} + +static Eldbus_Connection* +_eldbus_model_object_connection_get(Eo *obj EINA_UNUSED, + Eldbus_Model_Object_Data *pd) +{ + DBG("(%p)", obj); + + return pd->connection; +} + +static void +_eldbus_model_object_connection_model_set(Eo *obj EINA_UNUSED, + Eldbus_Model_Object_Data *pd, + Eldbus_Model_Connection *connection) +{ + DBG("(%p)", obj); + EINA_SAFETY_ON_NULL_RETURN(connection); + + Eldbus_Model_Connection_Data* connection_data + = eo_data_scope_get(connection, ELDBUS_MODEL_CONNECTION_CLASS); + eo_do(connection, fprintf(stderr, "%d\n", eldbus_model_connection_type_get())); + fflush(stderr); + pd->connection = eldbus_connection_ref(connection_data->connection); + + EINA_SAFETY_ON_FALSE_RETURN(NULL != pd->connection); } static void @@ -89,7 +87,6 @@ _eldbus_model_object_eo_base_destructor(Eo *obj, Eldbus_Model_Object_Data *pd) { DBG("(%p)", obj); - eina_stringshare_del(pd->address); eina_stringshare_del(pd->bus); eina_stringshare_del(pd->path); @@ -270,43 +267,6 @@ _eldbus_model_object_efl_model_base_children_load(Eo *obj, Eldbus_Model_Object_D efl_model_load_set(pd->obj, &pd->load, EFL_MODEL_LOAD_STATUS_LOADING_CHILDREN); } -static const char * -_eldbus_model_object_address_get(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd) -{ - return pd->address; -} - -static void -_eldbus_model_object_address_set(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd, const char *value) -{ - eina_stringshare_del(pd->address); - pd->address = eina_stringshare_add(value); -} - -static Eina_Bool -_eldbus_model_object_private_get(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd) -{ - return pd->private; -} - -static void -_eldbus_model_object_private_set(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd, Eina_Bool value) -{ - pd->private = value; -} - -static int -_eldbus_model_object_type_get(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd) -{ - return pd->type; -} - -static void -_eldbus_model_object_type_set(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd, int value) -{ - pd->type = value; -} - static const char * _eldbus_model_object_bus_get(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd) { @@ -338,20 +298,20 @@ _eldbus_model_object_connect(Eldbus_Model_Object_Data *pd) { EINA_SAFETY_ON_NULL_RETURN(pd); - if (ELDBUS_CONNECTION_TYPE_ADDRESS == pd->type) - { - if (pd->private) - pd->connection = eldbus_address_connection_get(pd->address); - else - pd->connection = eldbus_private_address_connection_get(pd->address); - } - else - { - if (pd->private) - pd->connection = eldbus_private_connection_get(pd->type); - else - pd->connection = eldbus_connection_get(pd->type); - } + /* if (ELDBUS_CONNECTION_TYPE_ADDRESS == pd->type) */ + /* { */ + /* if (pd->private) */ + /* pd->connection = eldbus_address_connection_get(pd->address); */ + /* else */ + /* pd->connection = eldbus_private_address_connection_get(pd->address); */ + /* } */ + /* else */ + /* { */ + /* if (pd->private) */ + /* pd->connection = eldbus_private_connection_get(pd->type); */ + /* else */ + /* pd->connection = eldbus_connection_get(pd->type); */ + /* } */ // TODO: Register for disconnection event diff --git a/src/lib/eldbus/eldbus_model_object.eo b/src/lib/eldbus/eldbus_model_object.eo index 68cbc81d0f..75b45898e7 100644 --- a/src/lib/eldbus/eldbus_model_object.eo +++ b/src/lib/eldbus/eldbus_model_object.eo @@ -2,53 +2,33 @@ class Eldbus.Model_Object (Eo.Base, Efl.Model.Base) { legacy_prefix: null; data: Eldbus_Model_Object_Data; methods { - constructor { - [[Custom Eldbus_Model_Object constructor. - - @since 1.16]] - params { - @in type: int; [[The connection type]] - @in address: const(char)*; [[Remote address of dbus]] - @in private_: bool; [[Non shared dbus connection]] - @in bus: const(char)*; [[DBus Name or unique-id]] - @in path: const(char)*; [[DBus path]] - } - } - connection_constructor { - [[Custom Eldbus_Model_Object connection_constructor. - - @since 1.16]] - params { - @in connection: Eldbus_Connection*; [[Eldbus connection]] - @in bus: const(char)*; [[DBus Name or unique-id]] - @in path: const(char)*; [[DBus path]] - } - } - @property type { - values { - value: int; - } - } - @property address { - values { - value: const(char)*; - } - } - @property private { - values { - value: bool; - } - } @property bus { + set {} + get {} values { value: const(char)*; } } @property path { + set {} + get {} values { value: const(char)*; } } + @property connection_model { + set {} + values { + value: Eldbus.Model_Connection*; + } + } + @property connection { + set {} + get {} + values { + value: Eldbus_Connection*; + } + } } implements { Eo.Base.constructor; @@ -67,7 +47,9 @@ class Eldbus.Model_Object (Eo.Base, Efl.Model.Base) { Efl.Model.Base.children_load; } constructors { - .constructor; - .connection_constructor; + .connection @optional; + .connection_model @optional; + .bus; + .path; } } diff --git a/src/lib/eldbus/eldbus_model_object_private.h b/src/lib/eldbus/eldbus_model_object_private.h index 745492143e..8a471a7f23 100644 --- a/src/lib/eldbus/eldbus_model_object_private.h +++ b/src/lib/eldbus/eldbus_model_object_private.h @@ -18,9 +18,9 @@ struct _Eldbus_Model_Object_Data Eina_List *object_list; Eina_Array *properties_array; Eina_List *children_list; - Eldbus_Connection_Type type; - Eina_Stringshare *address; - bool private; + // Eldbus_Connection_Type type; + // Eina_Stringshare *address; + // bool private; Eina_Stringshare *bus; Eina_Stringshare *path; Eina_Value *unique_name; diff --git a/src/lib/eldbus/eldbus_model_proxy.c b/src/lib/eldbus/eldbus_model_proxy.c index b9f175ad1f..cc1b5bba94 100644 --- a/src/lib/eldbus/eldbus_model_proxy.c +++ b/src/lib/eldbus/eldbus_model_proxy.c @@ -378,7 +378,7 @@ _eldbus_model_proxy_create_signals_children(Eldbus_Model_Proxy_Data *pd) DBG("(%p) Creating signal child: bus = %s, path = %s, signal = %s::%s", pd->obj, bus, path, interface_name, signal_name); Eo *child = eo_add(ELDBUS_MODEL_SIGNAL_CLASS, NULL, - eldbus_model_signal_proxy_set(pd->proxy), + eldbus_model_arguments_proxy_set(pd->proxy), eldbus_model_signal_set(signal)); pd->children_list = eina_list_append(pd->children_list, child); diff --git a/src/lib/eldbus/eldbus_model_signal.eo b/src/lib/eldbus/eldbus_model_signal.eo index 473c64ec4e..254c9b34f1 100644 --- a/src/lib/eldbus/eldbus_model_signal.eo +++ b/src/lib/eldbus/eldbus_model_signal.eo @@ -1,16 +1,6 @@ class Eldbus.Model_Signal (Eldbus.Model_Arguments) { legacy_prefix: null; methods { - @property proxy { - [[Custom Eldbus_Model_Signal constructor. - - @since 1.16]] - set {} - get {} - values { - proxy: Eldbus_Proxy*; [[Eldbus proxy]] - } - } @property signal { set {} get {} @@ -26,7 +16,7 @@ class Eldbus.Model_Signal (Eldbus.Model_Arguments) { Efl.Model.Base.unload; } constructors { - .proxy; + Eldbus.Model_Arguments.proxy; .signal; } } diff --git a/src/tests/eldbus/eldbus_test_eldbus_model.c b/src/tests/eldbus/eldbus_test_eldbus_model.c index 2ce2361ff6..cd68e6ec38 100644 --- a/src/tests/eldbus/eldbus_test_eldbus_model.c +++ b/src/tests/eldbus/eldbus_test_eldbus_model.c @@ -147,12 +147,18 @@ create_and_load_connection(void) Eo * create_object(void) { + Eo *connection = eo_add(ELDBUS_MODEL_CONNECTION_CLASS, NULL, + eldbus_model_connection_type_set(ELDBUS_CONNECTION_TYPE_SESSION), + eldbus_model_connection_address_set(NULL), + eldbus_model_connection_private_set(EINA_FALSE)); + ck_assert_ptr_ne(NULL, connection); + + efl_model_load_and_wait_for_load_status(connection, EFL_MODEL_LOAD_STATUS_LOADED); + Eo *object = eo_add_ref(ELDBUS_MODEL_OBJECT_CLASS, NULL, - eldbus_model_object_constructor(ELDBUS_CONNECTION_TYPE_SESSION, - NULL, - EINA_FALSE, - ELDBUS_FDO_BUS, - ELDBUS_FDO_PATH)); + eldbus_model_object_connection_model_set(connection), + eldbus_model_object_bus_set(ELDBUS_FDO_BUS), + eldbus_model_object_path_set(ELDBUS_FDO_PATH)); ck_assert_ptr_ne(NULL, object); return object; } diff --git a/src/tests/eldbus/eldbus_test_eldbus_model_method.c b/src/tests/eldbus/eldbus_test_eldbus_model_method.c index 6c9dc5b008..7a68035e6b 100644 --- a/src/tests/eldbus/eldbus_test_eldbus_model_method.c +++ b/src/tests/eldbus/eldbus_test_eldbus_model_method.c @@ -29,12 +29,18 @@ _setup(void) fake_server = fake_server_start(&fake_server_data); + Eldbus_Model_Connection* connection + = eo_add(ELDBUS_MODEL_CONNECTION_CLASS, NULL, + eldbus_model_connection_type_set(ELDBUS_CONNECTION_TYPE_SESSION), + eldbus_model_connection_address_set(NULL), + eldbus_model_connection_private_set(EINA_FALSE)); + + efl_model_load_and_wait_for_load_status(connection, EFL_MODEL_LOAD_STATUS_LOADED); + fake_server_object = eo_add(ELDBUS_MODEL_OBJECT_CLASS, NULL, - eldbus_model_object_constructor(ELDBUS_CONNECTION_TYPE_SESSION, - NULL, - EINA_FALSE, - FAKE_SERVER_BUS, - FAKE_SERVER_PATH)); + eldbus_model_object_connection_model_set(connection), + eldbus_model_object_bus_set(FAKE_SERVER_BUS), + eldbus_model_object_path_set(FAKE_SERVER_PATH)); ck_assert_ptr_ne(NULL, fake_server_object); efl_model_load_and_wait_for_load_status(fake_server_object, EFL_MODEL_LOAD_STATUS_LOADED); diff --git a/src/tests/eldbus/eldbus_test_eldbus_model_signal.c b/src/tests/eldbus/eldbus_test_eldbus_model_signal.c index 1a7e907905..954b424cbf 100644 --- a/src/tests/eldbus/eldbus_test_eldbus_model_signal.c +++ b/src/tests/eldbus/eldbus_test_eldbus_model_signal.c @@ -27,12 +27,18 @@ _setup(void) fake_server = fake_server_start(&fake_server_data); + Eldbus_Model_Connection* connection + = eo_add(ELDBUS_MODEL_CONNECTION_CLASS, NULL, + eldbus_model_connection_type_set(ELDBUS_CONNECTION_TYPE_SESSION), + eldbus_model_connection_address_set(NULL), + eldbus_model_connection_private_set(EINA_FALSE)); + + efl_model_load_and_wait_for_load_status(connection, EFL_MODEL_LOAD_STATUS_LOADED); + fake_server_object = eo_add(ELDBUS_MODEL_OBJECT_CLASS, NULL, - eldbus_model_object_constructor(ELDBUS_CONNECTION_TYPE_SESSION, - NULL, - EINA_FALSE, - FAKE_SERVER_BUS, - FAKE_SERVER_PATH)); + eldbus_model_object_connection_model_set(connection), + eldbus_model_object_bus_set(FAKE_SERVER_BUS), + eldbus_model_object_path_set(FAKE_SERVER_PATH)); ck_assert_ptr_ne(NULL, fake_server_object); efl_model_load_and_wait_for_load_status(fake_server_object, EFL_MODEL_LOAD_STATUS_LOADED); diff --git a/src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c b/src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c index d4161b6b99..ce122b09d8 100644 --- a/src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c +++ b/src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c @@ -33,12 +33,18 @@ _setup(void) }; fake_server = fake_server_start(&fake_server_data); + Eldbus_Model_Connection* connection + = eo_add(ELDBUS_MODEL_CONNECTION_CLASS, NULL, + eldbus_model_connection_type_set(ELDBUS_CONNECTION_TYPE_SESSION), + eldbus_model_connection_address_set(NULL), + eldbus_model_connection_private_set(EINA_FALSE)); + + efl_model_load_and_wait_for_load_status(connection, EFL_MODEL_LOAD_STATUS_LOADED); + fake_server_object = eo_add(ELDBUS_MODEL_OBJECT_CLASS, NULL, - eldbus_model_object_constructor(ELDBUS_CONNECTION_TYPE_SESSION, - NULL, - EINA_FALSE, - FAKE_SERVER_BUS, - FAKE_SERVER_PATH)); + eldbus_model_object_connection_model_set(connection), + eldbus_model_object_bus_set(FAKE_SERVER_BUS), + eldbus_model_object_path_set(FAKE_SERVER_PATH)); ck_assert_ptr_ne(NULL, fake_server_object); efl_model_load_and_wait_for_load_status(fake_server_object, EFL_MODEL_LOAD_STATUS_LOADED);