diff options
author | Mark Doffman <mdoff@silver-wind.(none)> | 2008-12-07 23:13:13 +0000 |
---|---|---|
committer | Mark Doffman <mdoff@silver-wind.(none)> | 2008-12-07 23:13:13 +0000 |
commit | b37f0b74994912dea13f33d63d3f1395554944b2 (patch) | |
tree | 39eab0fbdbfb6700f31b5519c0203651346492ef /droute/droute.h | |
parent | 23b0b74622ee824e48793967555cdb2a50af039d (diff) | |
download | at-spi2-atk-b37f0b74994912dea13f33d63d3f1395554944b2.tar.gz |
2008-12-07 Mark Doffman <mark.doffman@codethink.co.uk>
* dbind/*
droute/*
Complete refactoring droute to add api for
creating single objects and object classes.
Minor refactor of dbind, adding interface
for marshalling signals.
Diffstat (limited to 'droute/droute.h')
-rw-r--r-- | droute/droute.h | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/droute/droute.h b/droute/droute.h index c3006cc..93de4f7 100644 --- a/droute/droute.h +++ b/droute/droute.h @@ -3,6 +3,7 @@ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) * * Copyright 2008 Novell, Inc. + * Copyright 2008 Codethink Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -23,60 +24,59 @@ #define _DROUTE_H #include <dbus/dbus.h> -#include "glib.h" /* needed for GString */ +#include <glib.h> -#define DROUTE_METHOD 0 -#define DROUTE_SIGNAL 1 +#include <droute/droute-variant.h> -typedef DBusMessage *(*DRouteFunction)(DBusConnection *, DBusMessage *, void *); -typedef dbus_bool_t (*DRoutePropertyFunction)(const char *, DBusMessageIter *, void *); +typedef DBusMessage *(*DRouteFunction) (DBusConnection *, DBusMessage *, void *); +typedef dbus_bool_t (*DRoutePropertyFunction) (DBusMessageIter *, void *); + +typedef void *(*DRouteGetDatumFunction) (const char *, void *); typedef struct _DRouteMethod DRouteMethod; struct _DRouteMethod { - DRouteFunction func; - const char *name; - dbus_bool_t wants_droute_data; + DRouteFunction func; + const char *name; }; typedef struct _DRouteProperty DRouteProperty; struct _DRouteProperty { - DRoutePropertyFunction get; - DRoutePropertyFunction set; - const char *name; + DRoutePropertyFunction get; + DRoutePropertyFunction set; + const char *name; }; - typedef void *(*DRouteGetDatumFunction)(const char *, void *); - typedef void (*DRouteFreeDatumFunction)(void *); +/*---------------------------------------------------------------------------*/ -typedef struct _DRouteInterface DRouteInterface; -struct _DRouteInterface -{ - DRouteMethod *methods; - DRouteProperty *properties; - DRouteGetDatumFunction get_datum; - DRouteFreeDatumFunction free_datum; - char *name; -}; +typedef struct _DRouteContext DRouteContext; -typedef struct _DRouteData DRouteData; -struct _DRouteData -{ - DBusConnection *bus; - GSList *interfaces; - char (*introspect_children)(const char *, GString *, void *); - void *user_data; -}; +typedef struct _DRoutePath DRoutePath; + +/*---------------------------------------------------------------------------*/ + +DRouteContext * +droute_new (DBusConnection *bus, + const char *introspect_dir); +void +droute_free (DRouteContext *cnx); + +DRoutePath * +droute_add_one (DRouteContext *cnx, + const char *path, + const void *data); -DBusHandlerResult droute_message(DBusConnection *bus, DBusMessage *message, void *user_data); +DRoutePath * +droute_add_many (DRouteContext *cnx, + const char *path, + const void *data, + const DRouteGetDatumFunction get_datum); -dbus_bool_t droute_return_v_int32(DBusMessageIter *iter, dbus_int32_t val); -dbus_bool_t droute_return_v_double(DBusMessageIter *iter, double val); -dbus_bool_t droute_return_v_string(DBusMessageIter *iter, const char *val); -dbus_int32_t droute_get_v_int32(DBusMessageIter *iter); -const char *droute_get_v_string(DBusMessageIter *iter); -dbus_bool_t droute_return_v_object(DBusMessageIter *iter, const char *path); +void +droute_path_add_interface (DRoutePath *path, + const char *name, + const DRouteMethod *methods, + const DRouteProperty *properties); -dbus_bool_t droute_add_interface(DRouteData *data, const char *name, DRouteMethod *methods, DRouteProperty *properties, DRouteGetDatumFunction get_datum, DRouteFreeDatumFunction free_datum); -#endif /* _DROUTE_H */ +#endif /* _DROUTE_H */ |