X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git;a=blobdiff_plain;f=droute%2Fdroute.h;h=b19dec646f08c5bfd11e91f8b26ae950d3ffb866;hp=c3006cc8f1fd3a7f86030a4132ce959208beedc5;hb=305e6dd2f4b8c551108b6907de8146eb8007d657;hpb=f6ca06461319b20463f96a5b37544a540aee11ca diff --git a/droute/droute.h b/droute/droute.h index c3006cc..b19dec6 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,90 @@ #define _DROUTE_H #include -#include "glib.h" /* needed for GString */ +#include -#define DROUTE_METHOD 0 -#define DROUTE_SIGNAL 1 +#include -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 gchar *(*DRouteIntrospectChildrenFunction) (const char *, 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 (); + +void +droute_free (DRouteContext *cnx); + +DRoutePath * +droute_add_one (DRouteContext *cnx, + const char *path, + const void *data); + +DRoutePath * +droute_add_many (DRouteContext *cnx, + const char *path, + const void *data, + DRouteIntrospectChildrenFunction introspect_children_cb, + void *introspect_children_data, + const DRouteGetDatumFunction get_datum); + +void +droute_path_add_interface (DRoutePath *path, + const char *name, + const char *introspect, + const DRouteMethod *methods, + const DRouteProperty *properties); + +DBusMessage * +droute_not_yet_handled_error (DBusMessage *message); + +DBusMessage * +droute_invalid_arguments_error (DBusMessage *message); + +DBusMessage * +droute_out_of_memory_error (DBusMessage *message); + +void +droute_path_register (DRoutePath *path, DBusConnection *bus); + +void +droute_path_unregister (DRoutePath *path, DBusConnection *bus); + +void +droute_context_register (DRouteContext *cnx, DBusConnection *bus); -DBusHandlerResult droute_message(DBusConnection *bus, DBusMessage *message, void *user_data); +void +droute_context_unregister (DRouteContext *cnx, DBusConnection *bus); -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_intercept_dbus (DBusConnection *connection); -dbus_bool_t droute_add_interface(DRouteData *data, const char *name, DRouteMethod *methods, DRouteProperty *properties, DRouteGetDatumFunction get_datum, DRouteFreeDatumFunction free_datum); -#endif /* _DROUTE_H */ +void +droute_unintercept_dbus (DBusConnection *connection); +#endif /* _DROUTE_H */