Main Page | Modules | Data Structures | File List | Data Fields | Related Pages

dbus-gidl.h

00001 /* -*- mode: C; c-file-style: "gnu" -*- */
00002 /* dbus-gidl.h data structure describing an interface, to be generated from IDL
00003  *             or something
00004  *
00005  * Copyright (C) 2003  Red Hat, Inc.
00006  *
00007  * Licensed under the Academic Free License version 2.0
00008  * 
00009  * This program is free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation; either version 2 of the License, or
00012  * (at your option) any later version.
00013  *
00014  * This program is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  * GNU General Public License for more details.
00018  * 
00019  * You should have received a copy of the GNU General Public License
00020  * along with this program; if not, write to the Free Software
00021  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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 BaseInfo*      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 NodeInfo*      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 InterfaceInfo* 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 MethodInfo*    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 SignalInfo*    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 ArgInfo*       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 /* DBUS_GLIB_IDL_H */
00119 
00120 #endif /* DOXYGEN_SHOULD_SKIP_THIS */

Generated on Sun Mar 21 03:52:04 2004 for D-BUS by doxygen 1.3.6-20040222