00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef DBUS_GLIB_IDL_H
00025 #define DBUS_GLIB_IDL_H
00026
00027 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00028
00029 #include <dbus/dbus.h>
00030 #include <glib-object.h>
00031
00032 G_BEGIN_DECLS
00033
00034 typedef struct BaseInfo BaseInfo;
00035 typedef struct NodeInfo NodeInfo;
00036 typedef struct InterfaceInfo InterfaceInfo;
00037 typedef struct MethodInfo MethodInfo;
00038 typedef struct SignalInfo SignalInfo;
00039 typedef struct ArgInfo ArgInfo;
00040
00041 typedef enum
00042 {
00043 ARG_IN,
00044 ARG_OUT
00045 } ArgDirection;
00046
00047 typedef enum
00048 {
00049 INFO_TYPE_NODE,
00050 INFO_TYPE_INTERFACE,
00051 INFO_TYPE_METHOD,
00052 INFO_TYPE_SIGNAL,
00053 INFO_TYPE_ARG
00054
00055 } InfoType;
00056
00057 void base_info_ref (BaseInfo *info);
00058 void base_info_unref (BaseInfo *info);
00059 InfoType base_info_get_type (BaseInfo *info);
00060 const char* base_info_get_name (BaseInfo *info);
00061 void base_info_set_name (BaseInfo *info,
00062 const char *name);
00063 GType base_info_get_gtype (void);
00064 #define BASE_INFO_TYPE (base_info_get_gtype ())
00065
00066
00067 NodeInfo* node_info_new (const char *name);
00068 void node_info_ref (NodeInfo *info);
00069 void node_info_unref (NodeInfo *info);
00070 const char* node_info_get_name (NodeInfo *info);
00071 GSList* node_info_get_interfaces (NodeInfo *info);
00072 GSList* node_info_get_nodes (NodeInfo *info);
00073 void node_info_add_interface (NodeInfo *info,
00074 InterfaceInfo *interface);
00075 void node_info_add_node (NodeInfo *info,
00076 NodeInfo *child);
00077
00078 InterfaceInfo* interface_info_new (const char *name);
00079 void interface_info_ref (InterfaceInfo *info);
00080 void interface_info_unref (InterfaceInfo *info);
00081 const char* interface_info_get_name (InterfaceInfo *info);
00082 GSList* interface_info_get_methods (InterfaceInfo *info);
00083 GSList* interface_info_get_signals (InterfaceInfo *info);
00084 void interface_info_add_method (InterfaceInfo *info,
00085 MethodInfo *method);
00086 void interface_info_add_signal (InterfaceInfo *info,
00087 SignalInfo *signal);
00088
00089 MethodInfo* method_info_new (const char *name);
00090 void method_info_ref (MethodInfo *info);
00091 void method_info_unref (MethodInfo *info);
00092
00093 const char* method_info_get_name (MethodInfo *info);
00094 GSList* method_info_get_args (MethodInfo *info);
00095 void method_info_add_arg (MethodInfo *info,
00096 ArgInfo *arg);
00097
00098 SignalInfo* signal_info_new (const char *name);
00099 void signal_info_ref (SignalInfo *info);
00100 void signal_info_unref (SignalInfo *info);
00101
00102 const char* signal_info_get_name (SignalInfo *info);
00103 GSList* signal_info_get_args (SignalInfo *info);
00104 void signal_info_add_arg (SignalInfo *info,
00105 ArgInfo *arg);
00106
00107 ArgInfo* arg_info_new (const char *name,
00108 ArgDirection direction,
00109 int type);
00110 void arg_info_ref (ArgInfo *info);
00111 void arg_info_unref (ArgInfo *info);
00112 const char* arg_info_get_name (ArgInfo *info);
00113 int arg_info_get_type (ArgInfo *info);
00114 ArgDirection arg_info_get_direction (ArgInfo *info);
00115
00116 G_END_DECLS
00117
00118 #endif
00119
00120 #endif