diff options
author | Ted Gould <ted@canonical.com> | 2009-04-12 21:41:48 -0500 |
---|---|---|
committer | Ted Gould <ted@canonical.com> | 2009-04-12 21:41:48 -0500 |
commit | ce664599c72dcb80f9e0427a2a49fc3c26fb79c8 (patch) | |
tree | d767ff09b2cf89c7a7e8da66bf40e45493df94e0 /libindicate | |
parent | 20836b86feb5aad4c938a4af26e57f544e75a69c (diff) | |
download | libayatana-indicator-ce664599c72dcb80f9e0427a2a49fc3c26fb79c8.tar.gz libayatana-indicator-ce664599c72dcb80f9e0427a2a49fc3c26fb79c8.tar.bz2 libayatana-indicator-ce664599c72dcb80f9e0427a2a49fc3c26fb79c8.zip |
Proto-pseudo-code for the introspection functions that are going to be needed
Diffstat (limited to 'libindicate')
-rw-r--r-- | libindicate/listener.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/libindicate/listener.c b/libindicate/listener.c index 0646e81..8ae3973 100644 --- a/libindicate/listener.c +++ b/libindicate/listener.c @@ -1046,3 +1046,34 @@ indicate_listener_indicator_get_gtype (void) return our_type; } +static const gchar * _introspector_path[] = ["", "org", "freedesktop", "indicate", NULL]; +static const gchar * _introspector_interface = "org.freedesktop.indicator"; + +void +introspect_this (gchar * xml, IndicateServer * server) +{ + if (xml != NULL) { + /* Parse the XML */ + + /* Check for root being "node" */ + + const gchar * nodename = NULL; + const gchar * nameval = NULL; + if (_introspector_path[server->introspect_level] == NULL) { + /* We're looking for our interface */ + nodename = "interface"; + nameval = _introspector_interface; + } else { + /* We're looking for our next node */ + nodename = "node"; + nameval = _introspector_path[server->introspect_level]; + } + + } else { + server->introspect_level = 0; + } + + dbus_proxy_create(); + dbus_proxy_call(intropsect_this); + +} |