2003-09-21 Seth Nickell <seth@gnome.org>
[platform/upstream/dbus.git] / glib / dbus-gidl.h
index c3c72d6..f95abfb 100644 (file)
 #ifndef DBUS_GLIB_IDL_H
 #define DBUS_GLIB_IDL_H
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
 #include <dbus/dbus.h>
-#include <glib.h>
+#include <glib-object.h>
 
 G_BEGIN_DECLS
 
+typedef struct BaseInfo      BaseInfo;
+typedef struct NodeInfo      NodeInfo;
 typedef struct InterfaceInfo InterfaceInfo;
 typedef struct MethodInfo    MethodInfo;
 typedef struct SignalInfo    SignalInfo;
@@ -42,14 +46,39 @@ typedef enum
 
 typedef enum
 {
-  METHOD_SYNC,
-  METHOD_ASYNC,
-  METHOD_CANCELLABLE
-} MethodStyle;
+  INFO_TYPE_NODE,
+  INFO_TYPE_INTERFACE,
+  INFO_TYPE_METHOD,
+  INFO_TYPE_SIGNAL,
+  INFO_TYPE_ARG
+
+} InfoType;
+
+void           base_info_ref              (BaseInfo      *info);
+void           base_info_unref            (BaseInfo      *info);
+InfoType       base_info_get_type         (BaseInfo      *info);
+const char*    base_info_get_name         (BaseInfo      *info);
+void           base_info_set_name         (BaseInfo      *info,
+                                           const char    *name);
+GType          base_info_get_gtype        (void);
+#define        BASE_INFO_TYPE             (base_info_get_gtype ())
+
+
+NodeInfo*      node_info_new              (const char    *name);
+void           node_info_ref              (NodeInfo      *info);
+void           node_info_unref            (NodeInfo      *info);
+const char*    node_info_get_name         (NodeInfo      *info);
+GSList*        node_info_get_interfaces   (NodeInfo      *info);
+GSList*        node_info_get_nodes        (NodeInfo      *info);
+void           node_info_add_interface    (NodeInfo      *info,
+                                           InterfaceInfo *interface);
+void           node_info_add_node         (NodeInfo      *info,
+                                           NodeInfo      *child);
 
 InterfaceInfo* interface_info_new         (const char    *name);
 void           interface_info_ref         (InterfaceInfo *info);
 void           interface_info_unref       (InterfaceInfo *info);
+const char*    interface_info_get_name    (InterfaceInfo *info);
 GSList*        interface_info_get_methods (InterfaceInfo *info);
 GSList*        interface_info_get_signals (InterfaceInfo *info);
 void           interface_info_add_method  (InterfaceInfo *info,
@@ -57,14 +86,12 @@ void           interface_info_add_method  (InterfaceInfo *info,
 void           interface_info_add_signal  (InterfaceInfo *info,
                                            SignalInfo    *signal);
 
-MethodInfo*    method_info_new            (const char    *name,
-                                           MethodStyle    style);
+MethodInfo*    method_info_new            (const char    *name);
 void           method_info_ref            (MethodInfo    *info);
 void           method_info_unref          (MethodInfo    *info);
 
 const char*    method_info_get_name       (MethodInfo    *info);
 GSList*        method_info_get_args       (MethodInfo    *info);
-MethodStyle    method_info_get_style      (MethodInfo    *info);
 void           method_info_add_arg        (MethodInfo    *info,
                                            ArgInfo       *arg);
 
@@ -89,3 +116,5 @@ ArgDirection   arg_info_get_direction     (ArgInfo       *info);
 G_END_DECLS
 
 #endif /* DBUS_GLIB_IDL_H */
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */