forked from enlightenment/efl
Fixed connection_model_set on object.
This commit is contained in:
parent
7457f37df4
commit
462ecf69d3
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include "eldbus_model_object_private.h"
|
||||
#include "eldbus_model_private.h"
|
||||
#include "eldbus_model_connection_private.h"
|
||||
|
||||
#include <Eina.h>
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue