-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);