From 7b590c126edde338b6a0ef99c6b9213062f7ecbd Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Fri, 4 Nov 2016 11:47:34 -0200 Subject: [PATCH] eldbus/eo: improve API remove setters that do not make sense, they are set in the constructor functions and cannot be changed. define the Eldbus_Connection_Type in .eo, properly type functions using it. --- src/lib/eldbus/eldbus_model_connection.c | 23 ++------------ src/lib/eldbus/eldbus_model_connection.eo | 9 ++++-- src/lib/eldbus/eldbus_model_object.c | 37 ++--------------------- src/lib/eldbus/eldbus_model_object.eo | 9 ++++-- src/lib/eldbus/eldbus_types.eot | 10 ++++++ 5 files changed, 28 insertions(+), 60 deletions(-) diff --git a/src/lib/eldbus/eldbus_model_connection.c b/src/lib/eldbus/eldbus_model_connection.c index 27ace02e99..e311c9824c 100644 --- a/src/lib/eldbus/eldbus_model_connection.c +++ b/src/lib/eldbus/eldbus_model_connection.c @@ -39,7 +39,7 @@ _eldbus_model_connection_efl_object_constructor(Eo *obj, Eldbus_Model_Connection static void _eldbus_model_connection_constructor(Eo *obj EINA_UNUSED, Eldbus_Model_Connection_Data *pd, - int type, + Eldbus_Connection_Type type, const char* address, Eina_Bool private) { @@ -212,37 +212,18 @@ _eldbus_model_connection_address_get(Eo *obj EINA_UNUSED, Eldbus_Model_Connectio return pd->address; } -static void -_eldbus_model_connection_address_set(Eo *obj EINA_UNUSED, Eldbus_Model_Connection_Data *pd, const char *value) -{ - eina_stringshare_del(pd->address); - pd->address = eina_stringshare_add(value); -} - static Eina_Bool _eldbus_model_connection_private_get(Eo *obj EINA_UNUSED, Eldbus_Model_Connection_Data *pd) { return pd->private; } -static void -_eldbus_model_connection_private_set(Eo *obj EINA_UNUSED, Eldbus_Model_Connection_Data *pd, Eina_Bool value) -{ - pd->private = value; -} - -static int +static Eldbus_Connection_Type _eldbus_model_connection_type_get(Eo *obj EINA_UNUSED, Eldbus_Model_Connection_Data *pd) { return pd->type; } -static void -_eldbus_model_connection_type_set(Eo *obj EINA_UNUSED, Eldbus_Model_Connection_Data *pd, int value) -{ - pd->type = value; -} - static void _eldbus_model_connection_connect(Eldbus_Model_Connection_Data *pd) { diff --git a/src/lib/eldbus/eldbus_model_connection.eo b/src/lib/eldbus/eldbus_model_connection.eo index 8a0a392f3b..8d26077848 100644 --- a/src/lib/eldbus/eldbus_model_connection.eo +++ b/src/lib/eldbus/eldbus_model_connection.eo @@ -1,3 +1,5 @@ +import eldbus_types; + class Eldbus.Model.Connection (Efl.Object, Efl.Model) { [[Eldbus model connection class]] @@ -7,25 +9,28 @@ class Eldbus.Model.Connection (Efl.Object, Efl.Model) { @since 1.16]] params { - @in type: int; [[The connection type]] + @in type: Eldbus.Connection.Type; [[The connection type]] @in address: string; [[Remote address of DBus]] @in private_: bool; [[Non shared dbus connection]] } } @property type { [[Connection type]] + get { } values { - type: int; [[Connection type]] + type: Eldbus.Connection.Type; [[Connection type]] } } @property address { [[Remote DBus address]] + get { } values { address: string; [[Address]] } } @property private { [[Indicate if the DBus connection is shared or private]] + get { } values { private_: bool; [[Private DBus connection]] } diff --git a/src/lib/eldbus/eldbus_model_object.c b/src/lib/eldbus/eldbus_model_object.c index a03030b6a5..b359eaf5e3 100644 --- a/src/lib/eldbus/eldbus_model_object.c +++ b/src/lib/eldbus/eldbus_model_object.c @@ -48,7 +48,7 @@ _eldbus_model_object_efl_object_constructor(Eo *obj, Eldbus_Model_Object_Data *p static void _eldbus_model_object_constructor(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd, - int type, + Eldbus_Connection_Type type, const char* address, Eina_Bool private, const char* bus, @@ -231,63 +231,30 @@ _eldbus_model_object_address_get(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data * 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 +static Eldbus_Connection_Type _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) { return pd->bus; } -static void -_eldbus_model_object_bus_set(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd, const char *value) -{ - eina_stringshare_del(pd->bus); - pd->bus = eina_stringshare_add(value); -} - static const char * _eldbus_model_object_path_get(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd) { return pd->path; } -static void -_eldbus_model_object_path_set(Eo *obj EINA_UNUSED, Eldbus_Model_Object_Data *pd, const char *value) -{ - eina_stringshare_del(pd->path); - pd->path = eina_stringshare_add(value); -} - static void _eldbus_model_object_connect(Eldbus_Model_Object_Data *pd) { diff --git a/src/lib/eldbus/eldbus_model_object.eo b/src/lib/eldbus/eldbus_model_object.eo index f02e8bbef7..fde1120aa8 100644 --- a/src/lib/eldbus/eldbus_model_object.eo +++ b/src/lib/eldbus/eldbus_model_object.eo @@ -10,7 +10,7 @@ class Eldbus.Model.Object (Efl.Object, Efl.Model) { @since 1.16]] params { - @in type: int; [[The connection type]] + @in type: Eldbus.Connection.Type; [[The connection type]] @in address: string; [[Remote address of DBus]] @in private_: bool; [[Non shared DBus connection]] @in bus: string; [[DBus Name or unique-id]] @@ -29,30 +29,35 @@ class Eldbus.Model.Object (Efl.Object, Efl.Model) { } @property type { [[Connection type]] + get { } values { - type: int; [[Connection type]] + type: Eldbus.Connection.Type; [[Connection type]] } } @property address { [[Remote address of DBus]] + get { } values { address: string; [[Address]] } } @property private { [[Indicate if the DBus connection is shared or private]] + get { } values { private_: bool; [[Private DBus connection]] } } @property bus { [[DBus Name or unique-id]] + get { } values { bus: string; [[DBus name]] } } @property path { [[DBus path]] + get { } values { path: string; [[DBus path]] } diff --git a/src/lib/eldbus/eldbus_types.eot b/src/lib/eldbus/eldbus_types.eot index 5db90543ae..a4db94e78e 100644 --- a/src/lib/eldbus/eldbus_types.eot +++ b/src/lib/eldbus/eldbus_types.eot @@ -4,6 +4,16 @@ struct Eldbus.Proxy; [[Represents a client object bound to an interface]] struct Eldbus.Connection; [[Represents a connection of one the type of connection with the DBus daemon.]] struct Eldbus.Object; [[Represents an object path already attached with bus name or unique id]] +enum @extern Eldbus.Connection.Type +{ + unknown = 0, [[sentinel, not a real type]] + session, [[regular user session bus, used for applications and services running per user]] + system, [[system-wide connection bus, used for system services]] + starter, [[Uses whatever bus started our application, be session or system]] + address, [[A private bus at a specific address]] + last, [[sentinel, not a real type]] +} + enum Eldbus.Introspection.Argument_Direction { [[Argument direction]]