diff -r 000000000000 -r e4d67989cc36 ofdbus/dbus-glib/dbus/dbus-gidl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ofdbus/dbus-glib/dbus/dbus-gidl.h Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,158 @@ +/* -*- mode: C; c-file-style: "gnu" -*- */ +/* dbus-gidl.h data structure describing an interface, to be generated from IDL + * or something + * + * Copyright (C) 2003 Red Hat, Inc. + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#ifndef DBUS_GLIB_IDL_H +#define DBUS_GLIB_IDL_H + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + +#include +#include + +G_BEGIN_DECLS + +typedef struct BaseInfo BaseInfo; +typedef struct NodeInfo NodeInfo; +typedef struct InterfaceInfo InterfaceInfo; +typedef struct MethodInfo MethodInfo; +typedef struct SignalInfo SignalInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct ArgInfo ArgInfo; + +typedef enum +{ + ARG_INVALID = -1, + ARG_IN, + ARG_OUT +} ArgDirection; + +typedef enum +{ + PROPERTY_READ = 1 << 0, + PROPERTY_WRITE = 1 << 1 +} PropertyAccessFlags; + +typedef enum +{ + INFO_TYPE_NODE, + INFO_TYPE_INTERFACE, + INFO_TYPE_METHOD, + INFO_TYPE_SIGNAL, + INFO_TYPE_ARG, + INFO_TYPE_PROPERTY + +} InfoType; + +BaseInfo* 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); +NodeInfo* 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); +void node_info_replace_node (NodeInfo *info, + NodeInfo *old_child, + NodeInfo *new_child); +InterfaceInfo* interface_info_new (const char *name); +InterfaceInfo* interface_info_ref (InterfaceInfo *info); +void interface_info_unref (InterfaceInfo *info); +const char* interface_info_get_name (InterfaceInfo *info); +GSList* interface_info_get_annotations(InterfaceInfo *info); +const char* interface_info_get_annotation (InterfaceInfo*info, + const char *annotation); +GSList* interface_info_get_methods (InterfaceInfo *info); +GSList* interface_info_get_signals (InterfaceInfo *info); +GSList* interface_info_get_properties (InterfaceInfo *info); +void interface_info_add_annotation (InterfaceInfo *info, + const char *name, + const char *value); +void interface_info_add_method (InterfaceInfo *info, + MethodInfo *method); +void interface_info_add_signal (InterfaceInfo *info, + SignalInfo *signal); +void interface_info_add_property (InterfaceInfo *info, + PropertyInfo *property); +MethodInfo* method_info_new (const char *name); +MethodInfo* method_info_ref (MethodInfo *info); +void method_info_unref (MethodInfo *info); +const char* method_info_get_name (MethodInfo *info); +GSList* method_info_get_annotations (MethodInfo *info); +const char* method_info_get_annotation (MethodInfo *info, + const char *annotation); +void method_info_add_annotation (MethodInfo *info, + const char *name, + const char *value); +GSList* method_info_get_args (MethodInfo *info); +void method_info_add_arg (MethodInfo *info, + ArgInfo *arg); +int method_info_get_n_args (MethodInfo *info); +SignalInfo* signal_info_new (const char *name); +SignalInfo* signal_info_ref (SignalInfo *info); +void signal_info_unref (SignalInfo *info); +const char* signal_info_get_name (SignalInfo *info); +GSList* signal_info_get_args (SignalInfo *info); +void signal_info_add_arg (SignalInfo *info, + ArgInfo *arg); +int signal_info_get_n_args (SignalInfo *info); +PropertyInfo* property_info_new (const char *name, + const char *type, + PropertyAccessFlags access); +PropertyInfo* property_info_ref (PropertyInfo *info); +void property_info_unref (PropertyInfo *info); +const char* property_info_get_name (PropertyInfo *info); +const char* property_info_get_type (PropertyInfo *info); +PropertyAccessFlags property_info_get_access (PropertyInfo *info); +ArgInfo* arg_info_new (const char *name, + ArgDirection direction, + const char *type); +ArgInfo* arg_info_ref (ArgInfo *info); +void arg_info_unref (ArgInfo *info); +const char* arg_info_get_name (ArgInfo *info); +const char* arg_info_get_type (ArgInfo *info); +ArgDirection arg_info_get_direction (ArgInfo *info); +GSList* arg_info_get_annotations (ArgInfo *info); +const char* arg_info_get_annotation (ArgInfo *info, + const char *annotation); +void arg_info_add_annotation (ArgInfo *info, + const char *name, + const char *value); + + +G_END_DECLS + +#endif /* DBUS_GLIB_IDL_H */ + +#endif /* DOXYGEN_SHOULD_SKIP_THIS */