2015-12-02 15:20:48 -08:00
|
|
|
//Compile with:
|
|
|
|
// gcc -o busmodel busmodel.c `pkg-config --cflags --libs eldbus ecore eina`
|
|
|
|
|
2016-04-20 13:07:53 -07:00
|
|
|
#ifdef HAVE_CONFIG_H
|
2015-12-02 15:20:48 -08:00
|
|
|
# include <config.h>
|
2016-04-20 13:07:53 -07:00
|
|
|
#endif
|
2015-12-02 15:20:48 -08:00
|
|
|
|
|
|
|
#include <Eldbus.h>
|
|
|
|
#include <Eldbus_Model.h>
|
|
|
|
#include <Efl.h>
|
|
|
|
#include <Ecore.h>
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
#include <Ecore_Getopt.h>
|
2015-12-02 15:20:48 -08:00
|
|
|
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
#define DEFAULT_BUS_NAME "org.freedesktop.DBus"
|
2015-12-02 15:20:48 -08:00
|
|
|
#define DEFAULT_PATH "/"
|
|
|
|
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
static int retval = EXIT_SUCCESS;
|
|
|
|
static Eina_Bool quit_on_done = EINA_TRUE;
|
2015-12-02 15:20:48 -08:00
|
|
|
|
2016-04-20 13:07:53 -07:00
|
|
|
static void
|
2018-04-30 13:41:38 -07:00
|
|
|
_on_properties_changed(void *data EINA_UNUSED, const Efl_Event *event)
|
2016-04-20 13:07:53 -07:00
|
|
|
{
|
2018-04-30 13:41:38 -07:00
|
|
|
Efl_Model_Property_Event *ev = event->info;
|
|
|
|
Eina_Array_Iterator it;
|
|
|
|
const char *property;
|
|
|
|
unsigned int i;
|
|
|
|
|
|
|
|
printf("Properties changed:\n");
|
|
|
|
EINA_ARRAY_ITER_NEXT(ev->changed_properties, i, property, it)
|
2015-12-02 15:20:48 -08:00
|
|
|
{
|
2018-04-30 13:41:38 -07:00
|
|
|
Eina_Value *v;
|
|
|
|
char *str;
|
|
|
|
|
|
|
|
v = efl_model_property_get(event->object, property);
|
|
|
|
|
|
|
|
if (!v)
|
2015-12-02 15:20:48 -08:00
|
|
|
{
|
2018-04-30 13:41:38 -07:00
|
|
|
EINA_LOG_CRIT("Property '%s' returned nothing.", property);
|
|
|
|
abort();
|
2015-12-02 15:20:48 -08:00
|
|
|
}
|
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
str = eina_value_to_string(v);
|
|
|
|
printf("\t%s: '%s'\n", property, str);
|
|
|
|
free(str);
|
|
|
|
|
|
|
|
eina_value_free(v);
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
}
|
2018-04-30 13:41:38 -07:00
|
|
|
|
|
|
|
printf("Properties invalidated:\n");
|
|
|
|
EINA_ARRAY_ITER_NEXT(ev->invalidated_properties, i, property, it)
|
|
|
|
printf("\t%s\n", property);
|
2015-12-02 15:20:48 -08:00
|
|
|
}
|
|
|
|
|
2016-04-20 13:07:53 -07:00
|
|
|
static void
|
2018-04-30 13:41:38 -07:00
|
|
|
_on_invalidate(void *data EINA_UNUSED, const Efl_Event *event)
|
2015-12-02 15:20:48 -08:00
|
|
|
{
|
2018-04-30 13:41:38 -07:00
|
|
|
efl_unref(event->object);
|
2016-04-20 13:07:53 -07:00
|
|
|
}
|
2015-12-02 15:20:48 -08:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
EFL_CALLBACKS_ARRAY_DEFINE(child_cbs,
|
|
|
|
{ EFL_MODEL_EVENT_PROPERTIES_CHANGED, _on_properties_changed },
|
|
|
|
{ EFL_EVENT_INVALIDATE, _on_invalidate });
|
|
|
|
|
2016-04-20 13:07:53 -07:00
|
|
|
static void
|
2018-04-30 13:41:38 -07:00
|
|
|
process(Eo *child, unsigned int index)
|
2016-04-20 13:07:53 -07:00
|
|
|
{
|
2018-11-23 08:25:19 -08:00
|
|
|
Eina_Iterator *properties = efl_model_properties_get(child);
|
2018-04-30 13:41:38 -07:00
|
|
|
const char *property;
|
|
|
|
Eina_Strbuf *buf;
|
2018-11-23 08:25:19 -08:00
|
|
|
Eina_Bool noproperties = EINA_TRUE;
|
2018-04-30 13:41:38 -07:00
|
|
|
|
|
|
|
buf = eina_strbuf_new();
|
2015-12-02 15:20:48 -08:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
const char *name = eldbus_model_proxy_name_get(child);
|
|
|
|
|
2018-11-23 08:25:19 -08:00
|
|
|
EINA_ITERATOR_FOREACH(properties, property)
|
2015-12-02 15:20:48 -08:00
|
|
|
{
|
2018-04-30 13:41:38 -07:00
|
|
|
Eina_Value *v = efl_model_property_get(child, property);
|
|
|
|
char *str;
|
2016-04-20 13:07:53 -07:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
if (!v)
|
2016-04-20 13:07:53 -07:00
|
|
|
{
|
2018-04-30 13:41:38 -07:00
|
|
|
EINA_LOG_CRIT("Property '%s' returned nothing.", property);
|
|
|
|
abort();
|
2016-04-20 13:07:53 -07:00
|
|
|
}
|
2015-12-02 15:20:48 -08:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
str = eina_value_to_string(v);
|
|
|
|
eina_strbuf_append_printf(buf, " \t* %s: '%s'\n", property, str);
|
|
|
|
free(str);
|
|
|
|
|
|
|
|
eina_value_free(v);
|
2018-11-23 08:25:19 -08:00
|
|
|
|
|
|
|
noproperties = EINA_FALSE;
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
}
|
2018-11-23 08:25:19 -08:00
|
|
|
eina_iterator_free(properties);
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
|
2018-11-23 08:25:19 -08:00
|
|
|
if (noproperties)
|
2018-04-30 13:41:38 -07:00
|
|
|
eina_strbuf_append_printf(buf, " %2d: %s (no properties yet)\n", index, name);
|
|
|
|
else
|
|
|
|
eina_strbuf_prepend_printf(buf, " -> %s\n Properties:\n", name);
|
2016-04-20 13:07:53 -07:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
printf("%s", eina_strbuf_string_get(buf));
|
2015-12-02 15:20:48 -08:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
eina_strbuf_free(buf);
|
|
|
|
|
|
|
|
efl_ref(child);
|
|
|
|
|
|
|
|
efl_event_callback_array_add(child, child_cbs(), NULL);
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
printf("monitoring events...\n");
|
2015-12-02 15:20:48 -08:00
|
|
|
}
|
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
static Eina_Value
|
|
|
|
_slice(void *data, const Eina_Value v,
|
|
|
|
const Eina_Future *dead_future EINA_UNUSED)
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
{
|
2018-04-30 13:41:38 -07:00
|
|
|
unsigned int offset = (unsigned int)(uintptr_t) data;
|
|
|
|
unsigned int i, len;
|
|
|
|
Eo *child;
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR) return v;
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
EINA_VALUE_ARRAY_FOREACH(&v, len, i, child)
|
|
|
|
process(child, offset + i);
|
|
|
|
|
|
|
|
return v;
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_on_child_added(void *data EINA_UNUSED, const Efl_Event *event)
|
|
|
|
{
|
2018-04-30 13:41:38 -07:00
|
|
|
Efl_Model_Children_Event *ev = event->info;
|
|
|
|
|
|
|
|
printf("Children Added: %i\n", ev->index);
|
|
|
|
|
|
|
|
eina_future_then(efl_model_children_slice_get(event->object, ev->index, 1),
|
|
|
|
_slice, (void*)(uintptr_t) ev->index);
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_on_child_removed(void *data EINA_UNUSED, const Efl_Event *event)
|
|
|
|
{
|
|
|
|
Eo *child = event->info;
|
|
|
|
printf("Children Removed: %p\n", child);
|
|
|
|
}
|
|
|
|
|
|
|
|
EFL_CALLBACKS_ARRAY_DEFINE(event_cbs,
|
|
|
|
{ EFL_MODEL_EVENT_PROPERTIES_CHANGED, _on_properties_changed },
|
|
|
|
{ EFL_MODEL_EVENT_CHILD_ADDED, _on_child_added },
|
|
|
|
{ EFL_MODEL_EVENT_CHILD_REMOVED, _on_child_removed });
|
|
|
|
|
|
|
|
static const Ecore_Getopt options = {
|
|
|
|
"dbusmodel", /* program name */
|
|
|
|
NULL, /* usage line */
|
|
|
|
"1", /* version */
|
|
|
|
"(C) 2016 Enlightenment Project", /* copyright */
|
|
|
|
"BSD 2-Clause", /* license */
|
|
|
|
/* long description, may be multiline and contain \n */
|
|
|
|
"Example of Eldbus.Model.Object to fetch children and properties.\n",
|
|
|
|
EINA_FALSE,
|
|
|
|
{
|
|
|
|
ECORE_GETOPT_STORE_TRUE('s', "system", "connect to the system bus, not user session."),
|
|
|
|
ECORE_GETOPT_STORE_FALSE('w', "wait", "after done, wait for events (monitoring)"),
|
|
|
|
|
|
|
|
ECORE_GETOPT_VERSION('V', "version"),
|
|
|
|
ECORE_GETOPT_COPYRIGHT('C', "copyright"),
|
|
|
|
ECORE_GETOPT_LICENSE('L', "license"),
|
|
|
|
ECORE_GETOPT_HELP('h', "help"),
|
|
|
|
|
|
|
|
ECORE_GETOPT_STORE_METAVAR_STR(0, NULL, "The bus name to connect.", "bus_name"),
|
|
|
|
ECORE_GETOPT_STORE_METAVAR_STR(0, NULL, "The path to explore.", "path"),
|
|
|
|
|
|
|
|
ECORE_GETOPT_SENTINEL
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2015-12-02 15:20:48 -08:00
|
|
|
int
|
|
|
|
main(int argc, char **argv EINA_UNUSED)
|
|
|
|
{
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
Eldbus_Connection_Type conn_type;
|
|
|
|
Eina_Bool is_system = EINA_FALSE;
|
|
|
|
char *bus_name = DEFAULT_BUS_NAME;
|
|
|
|
char *path = DEFAULT_PATH;
|
|
|
|
Eina_Bool quit_option = EINA_FALSE;
|
|
|
|
Ecore_Getopt_Value values[] = {
|
|
|
|
ECORE_GETOPT_VALUE_BOOL(is_system),
|
|
|
|
ECORE_GETOPT_VALUE_BOOL(quit_on_done),
|
|
|
|
|
|
|
|
/* standard block to provide version, copyright, license and help */
|
|
|
|
ECORE_GETOPT_VALUE_BOOL(quit_option), /* -V/--version quits */
|
|
|
|
ECORE_GETOPT_VALUE_BOOL(quit_option), /* -C/--copyright quits */
|
|
|
|
ECORE_GETOPT_VALUE_BOOL(quit_option), /* -L/--license quits */
|
|
|
|
ECORE_GETOPT_VALUE_BOOL(quit_option), /* -h/--help quits */
|
|
|
|
|
|
|
|
/* positional argument */
|
|
|
|
ECORE_GETOPT_VALUE_STR(bus_name),
|
|
|
|
ECORE_GETOPT_VALUE_STR(path),
|
|
|
|
|
|
|
|
ECORE_GETOPT_VALUE_NONE /* sentinel */
|
|
|
|
};
|
|
|
|
int args;
|
2015-12-02 15:20:48 -08:00
|
|
|
Eo *root;
|
|
|
|
|
2016-04-20 13:07:53 -07:00
|
|
|
ecore_init();
|
2015-12-02 15:20:48 -08:00
|
|
|
eldbus_init();
|
|
|
|
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
args = ecore_getopt_parse(&options, values, argc, argv);
|
|
|
|
if (args < 0)
|
|
|
|
{
|
|
|
|
fputs("ERROR: Could not parse command line options.\n", stderr);
|
|
|
|
retval = EXIT_FAILURE;
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (quit_option) goto end;
|
2015-12-02 15:20:48 -08:00
|
|
|
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
args = ecore_getopt_parse_positional(&options, values, argc, argv, args);
|
|
|
|
if (args < 0)
|
|
|
|
{
|
|
|
|
fputs("ERROR: Could not parse positional arguments.\n", stderr);
|
|
|
|
retval = EXIT_FAILURE;
|
|
|
|
goto end;
|
|
|
|
}
|
2015-12-02 15:20:48 -08:00
|
|
|
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
conn_type = (is_system ?
|
|
|
|
ELDBUS_CONNECTION_TYPE_SYSTEM :
|
|
|
|
ELDBUS_CONNECTION_TYPE_SESSION);
|
2015-12-02 15:20:48 -08:00
|
|
|
|
2018-02-26 21:10:12 -08:00
|
|
|
root = efl_add_ref(ELDBUS_MODEL_OBJECT_CLASS, efl_main_loop_get(),
|
2018-04-30 13:41:38 -07:00
|
|
|
eldbus_model_connect(efl_added, conn_type, NULL, EINA_FALSE),
|
|
|
|
eldbus_model_object_bus_set(efl_added, bus_name),
|
|
|
|
eldbus_model_object_path_set(efl_added, path),
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
efl_event_callback_array_add(efl_added, event_cbs(), NULL));
|
2015-12-02 15:20:48 -08:00
|
|
|
|
2018-04-30 13:41:38 -07:00
|
|
|
if (efl_model_children_count_get(root))
|
|
|
|
eina_future_then(efl_model_children_slice_get(root, 0, efl_model_children_count_get(root)),
|
2020-09-01 04:25:06 -07:00
|
|
|
_slice, NULL);
|
2015-12-02 15:20:48 -08:00
|
|
|
|
2016-04-20 13:07:53 -07:00
|
|
|
ecore_main_loop_begin();
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
efl_del(root);
|
2015-12-02 15:20:48 -08:00
|
|
|
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
end:
|
2016-04-20 13:07:53 -07:00
|
|
|
eldbus_shutdown();
|
examples/eldbus/dbusmodel.c improve situation, far from correct.
it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...
when model dies, all children proxies should die as well, otherwise we
get on console:
```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```
Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
2016-11-04 08:09:27 -07:00
|
|
|
ecore_shutdown();
|
|
|
|
return retval;
|
2015-12-02 15:20:48 -08:00
|
|
|
}
|