diff options
author | Havoc Pennington <hp@redhat.com> | 2005-01-29 19:52:19 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2005-01-29 19:52:19 +0000 |
commit | fd3e49f249fb4ab5ac7da4fe9fc14cc67958d84a (patch) | |
tree | dbc9e553ccf466707acffb0f6f1e1f59177f1841 /glib/dbus-gidl.h | |
parent | 602c4b05c4d1c7c83a459b7d0164cc14eebdfcb4 (diff) |
2005-01-29 Havoc Pennington <hp@redhat.com>
* glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
though it uses glib, it could be extended for any binding in
principle
* glib/dbus-gobject.c (gobject_message_function): change to the
new way properties work
* dbus/dbus-protocol.h: add the new interfaces
* doc/dbus-specification.xml: document the introspection format,
Introspectable interface, and add an org.freedesktop.Properties
interface.
* glib/dbus-gparser.c: add support for a <property> element
* glib/dbus-gidl.c: add PropertyInfo
* glib/dbus-gobject.c (handle_introspect): put the outermost
<node> outside the signal and property descriptions.
(introspect_properties): export properties as <property> rather
than as method calls
Diffstat (limited to 'glib/dbus-gidl.h')
-rw-r--r-- | glib/dbus-gidl.h | 112 |
1 files changed, 63 insertions, 49 deletions
diff --git a/glib/dbus-gidl.h b/glib/dbus-gidl.h index 47b4f093..fffbddfc 100644 --- a/glib/dbus-gidl.h +++ b/glib/dbus-gidl.h @@ -36,21 +36,30 @@ 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_ARG, + INFO_TYPE_PROPERTY } InfoType; @@ -64,54 +73,59 @@ 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); - -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_methods (InterfaceInfo *info); -GSList* interface_info_get_signals (InterfaceInfo *info); -void interface_info_add_method (InterfaceInfo *info, - MethodInfo *method); -void interface_info_add_signal (InterfaceInfo *info, - SignalInfo *signal); - -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_args (MethodInfo *info); -void method_info_add_arg (MethodInfo *info, - ArgInfo *arg); - -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); - -ArgInfo* arg_info_new (const char *name, - ArgDirection direction, - int type); -ArgInfo* arg_info_ref (ArgInfo *info); -void arg_info_unref (ArgInfo *info); -const char* arg_info_get_name (ArgInfo *info); -int arg_info_get_type (ArgInfo *info); -ArgDirection arg_info_get_direction (ArgInfo *info); +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); +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_methods (InterfaceInfo *info); +GSList* interface_info_get_signals (InterfaceInfo *info); +GSList* interface_info_get_properties (InterfaceInfo *info); +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_args (MethodInfo *info); +void method_info_add_arg (MethodInfo *info, + ArgInfo *arg); +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); +PropertyInfo* property_info_new (const char *name, + int type, + PropertyAccessFlags access); +PropertyInfo* property_info_ref (PropertyInfo *info); +void property_info_unref (PropertyInfo *info); +const char* property_info_get_name (PropertyInfo *info); +int property_info_get_type (PropertyInfo *info); +PropertyAccessFlags property_info_get_access (PropertyInfo *info); +ArgInfo* arg_info_new (const char *name, + ArgDirection direction, + int type); +ArgInfo* arg_info_ref (ArgInfo *info); +void arg_info_unref (ArgInfo *info); +const char* arg_info_get_name (ArgInfo *info); +int arg_info_get_type (ArgInfo *info); +ArgDirection arg_info_get_direction (ArgInfo *info); G_END_DECLS |