Generic service-side interfaces

## Generic service-side interfaces Generic service-side interfaces — GInterfaces for D-Bus objects exporting Telepathy properties and common D-Bus core interfaces |

## Synopsis

    #include <telepathy-glib/svc-generic.h>

                        TpSvcDBusIntrospectable;
                        TpSvcDBusIntrospectableClass;
                        TpSvcDBusProperties;
                        TpSvcDBusPropertiesClass;
                        TpSvcPropertiesInterface;
                        TpSvcPropertiesInterfaceClass;
    void                tp_svc_dbus_introspectable_implement_introspect
                                                            (TpSvcDBusIntrospectableClass *klass,
                                                             tp_svc_dbus_introspectable_introspect_impl impl);
    void                (*tp_svc_dbus_introspectable_introspect_impl)
                                                            (TpSvcDBusIntrospectable *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_dbus_introspectable_return_from_introspect
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_XML_Data);
    void                (*tp_svc_dbus_properties_get_all_impl)
                                                            (TpSvcDBusProperties *self,
                                                             const gchar *in_Interface_Name,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_dbus_properties_get_impl)  (TpSvcDBusProperties *self,
                                                             const gchar *in_Interface_Name,
                                                             const gchar *in_Property_Name,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_dbus_properties_implement_get
                                                            (TpSvcDBusPropertiesClass *klass,
                                                             tp_svc_dbus_properties_get_impl impl);
    void                tp_svc_dbus_properties_implement_get_all
                                                            (TpSvcDBusPropertiesClass *klass,
                                                             tp_svc_dbus_properties_get_all_impl impl);
    void                tp_svc_dbus_properties_implement_set
                                                            (TpSvcDBusPropertiesClass *klass,
                                                             tp_svc_dbus_properties_set_impl impl);
    void                tp_svc_dbus_properties_return_from_get
                                                            (DBusGMethodInvocation *context,
                                                             const GValue *out_Value);
    void                tp_svc_dbus_properties_return_from_get_all
                                                            (DBusGMethodInvocation *context,
                                                             GHashTable *out_Properties);
    void                tp_svc_dbus_properties_return_from_set
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_dbus_properties_set_impl)  (TpSvcDBusProperties *self,
                                                             const gchar *in_Interface_Name,
                                                             const gchar *in_Property_Name,
                                                             const GValue *in_Value,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_properties_interface_get_properties_impl)
                                                            (TpSvcPropertiesInterface *self,
                                                             const GArray *in_properties,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_properties_interface_return_from_get_properties
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out0);
    void                tp_svc_properties_interface_implement_get_properties
                                                            (TpSvcPropertiesInterfaceClass *klass,
                                                             tp_svc_properties_interface_get_properties_impl impl);
    void                (*tp_svc_properties_interface_list_properties_impl)
                                                            (TpSvcPropertiesInterface *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_properties_interface_return_from_list_properties
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out0);
    void                tp_svc_properties_interface_implement_list_properties
                                                            (TpSvcPropertiesInterfaceClass *klass,
                                                             tp_svc_properties_interface_list_properties_impl impl);
    void                (*tp_svc_properties_interface_set_properties_impl)
                                                            (TpSvcPropertiesInterface *self,
                                                             const GPtrArray *in_properties,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_properties_interface_return_from_set_properties
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_properties_interface_implement_set_properties
                                                            (TpSvcPropertiesInterfaceClass *klass,
                                                             tp_svc_properties_interface_set_properties_impl impl);
    void                tp_svc_properties_interface_emit_properties_changed
                                                            (gpointer instance,
                                                             const GPtrArray *arg_properties);
    void                tp_svc_properties_interface_emit_property_flags_changed
                                                            (gpointer instance,
                                                             const GPtrArray *arg_properties);

## Description

The D-Bus Properties interface associates named properties with any D-Bus object.

The D-Bus Introspectable interface provides introspection information.

The D-Bus Peer interface is exported by every D-Bus object.

The Telepathy Properties interface associates a number of named properties with a channel, connection or other D-Bus object. Signals are emitted when the properties or their flags (readable/writable) change.

## Details

### TpSvcDBusIntrospectable

    typedef struct _TpSvcDBusIntrospectable TpSvcDBusIntrospectable;

Dummy typedef representing any implementation of this interface.

### TpSvcDBusIntrospectableClass

    typedef struct _TpSvcDBusIntrospectableClass TpSvcDBusIntrospectableClass;

The class of TpSvcDBusIntrospectable.

### TpSvcDBusProperties

    typedef struct _TpSvcDBusProperties TpSvcDBusProperties;

Dummy typedef representing any implementation of this interface.

### TpSvcDBusPropertiesClass

    typedef struct _TpSvcDBusPropertiesClass TpSvcDBusPropertiesClass;

The class of TpSvcDBusProperties.

### TpSvcPropertiesInterface

    typedef struct _TpSvcPropertiesInterface TpSvcPropertiesInterface;

Dummy typedef representing any implementation of this interface.

### TpSvcPropertiesInterfaceClass

    typedef struct _TpSvcPropertiesInterfaceClass TpSvcPropertiesInterfaceClass;

The class of TpSvcPropertiesInterface.

### tp_svc_dbus_introspectable_implement_introspect ()

    void                tp_svc_dbus_introspectable_implement_introspect
                                                            (TpSvcDBusIntrospectableClass *klass,
                                                             tp_svc_dbus_introspectable_introspect_impl impl);

Register an implementation for the Introspect method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Introspect D-Bus method

### tp_svc_dbus_introspectable_introspect_impl ()

    void                (*tp_svc_dbus_introspectable_introspect_impl)
                                                            (TpSvcDBusIntrospectable *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Introspect on interface org.freedesktop.DBus.Introspectable.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_dbus_introspectable_return_from_introspect ()

    void                tp_svc_dbus_introspectable_return_from_introspect
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_XML_Data);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_XML_Data` : | const gchar * (FIXME, generate documentation)

### tp_svc_dbus_properties_get_all_impl ()

    void                (*tp_svc_dbus_properties_get_all_impl)
                                                            (TpSvcDBusProperties *self,
                                                             const gchar *in_Interface_Name,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetAll on interface org.freedesktop.DBus.Properties.

`self` : | The object implementing this interface
`in_Interface_Name` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_dbus_properties_get_impl ()

    void                (*tp_svc_dbus_properties_get_impl)  (TpSvcDBusProperties *self,
                                                             const gchar *in_Interface_Name,
                                                             const gchar *in_Property_Name,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Get on interface org.freedesktop.DBus.Properties.

`self` : | The object implementing this interface
`in_Interface_Name` : | const gchar * (FIXME, generate documentation)
`in_Property_Name` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_dbus_properties_implement_get ()

    void                tp_svc_dbus_properties_implement_get
                                                            (TpSvcDBusPropertiesClass *klass,
                                                             tp_svc_dbus_properties_get_impl impl);

Register an implementation for the Get method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Get D-Bus method

### tp_svc_dbus_properties_implement_get_all ()

    void                tp_svc_dbus_properties_implement_get_all
                                                            (TpSvcDBusPropertiesClass *klass,
                                                             tp_svc_dbus_properties_get_all_impl impl);

Register an implementation for the GetAll method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetAll D-Bus method

### tp_svc_dbus_properties_implement_set ()

    void                tp_svc_dbus_properties_implement_set
                                                            (TpSvcDBusPropertiesClass *klass,
                                                             tp_svc_dbus_properties_set_impl impl);

Register an implementation for the Set method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Set D-Bus method

### tp_svc_dbus_properties_return_from_get ()

    void                tp_svc_dbus_properties_return_from_get
                                                            (DBusGMethodInvocation *context,
                                                             const GValue *out_Value);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Value` : | const GValue * (FIXME, generate documentation)

### tp_svc_dbus_properties_return_from_get_all ()

    void                tp_svc_dbus_properties_return_from_get_all
                                                            (DBusGMethodInvocation *context,
                                                             GHashTable *out_Properties);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Properties` : | GHashTable * (FIXME, generate documentation)

### tp_svc_dbus_properties_return_from_set ()

    void                tp_svc_dbus_properties_return_from_set
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_dbus_properties_set_impl ()

    void                (*tp_svc_dbus_properties_set_impl)  (TpSvcDBusProperties *self,
                                                             const gchar *in_Interface_Name,
                                                             const gchar *in_Property_Name,
                                                             const GValue *in_Value,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Set on interface org.freedesktop.DBus.Properties.

`self` : | The object implementing this interface
`in_Interface_Name` : | const gchar * (FIXME, generate documentation)
`in_Property_Name` : | const gchar * (FIXME, generate documentation)
`in_Value` : | const GValue * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_properties_interface_get_properties_impl ()

    void                (*tp_svc_properties_interface_get_properties_impl)
                                                            (TpSvcPropertiesInterface *self,
                                                             const GArray *in_properties,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetProperties on interface org.freedesktop.Telepathy.Properties.

`self` : | The object implementing this interface
`in_properties` : | const GArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_properties_interface_return_from_get_properties ()

    void                tp_svc_properties_interface_return_from_get_properties
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out0);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out0` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_properties_interface_implement_get_properties ()

    void                tp_svc_properties_interface_implement_get_properties
                                                            (TpSvcPropertiesInterfaceClass *klass,
                                                             tp_svc_properties_interface_get_properties_impl impl);

Register an implementation for the GetProperties method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetProperties D-Bus method

### tp_svc_properties_interface_list_properties_impl ()

    void                (*tp_svc_properties_interface_list_properties_impl)
                                                            (TpSvcPropertiesInterface *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method ListProperties on interface org.freedesktop.Telepathy.Properties.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_properties_interface_return_from_list_properties ()

    void                tp_svc_properties_interface_return_from_list_properties
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out0);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out0` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_properties_interface_implement_list_properties ()

    void                tp_svc_properties_interface_implement_list_properties
                                                            (TpSvcPropertiesInterfaceClass *klass,
                                                             tp_svc_properties_interface_list_properties_impl impl);

Register an implementation for the ListProperties method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the ListProperties D-Bus method

### tp_svc_properties_interface_set_properties_impl ()

    void                (*tp_svc_properties_interface_set_properties_impl)
                                                            (TpSvcPropertiesInterface *self,
                                                             const GPtrArray *in_properties,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method SetProperties on interface org.freedesktop.Telepathy.Properties.

`self` : | The object implementing this interface
`in_properties` : | const GPtrArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_properties_interface_return_from_set_properties ()

    void                tp_svc_properties_interface_return_from_set_properties
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_properties_interface_implement_set_properties ()

    void                tp_svc_properties_interface_implement_set_properties
                                                            (TpSvcPropertiesInterfaceClass *klass,
                                                             tp_svc_properties_interface_set_properties_impl impl);

Register an implementation for the SetProperties method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the SetProperties D-Bus method

### tp_svc_properties_interface_emit_properties_changed ()

    void                tp_svc_properties_interface_emit_properties_changed
                                                            (gpointer instance,
                                                             const GPtrArray *arg_properties);

Type-safe wrapper around g_signal_emit to emit the PropertiesChanged signal on interface org.freedesktop.Telepathy.Properties.

`instance` : | The object implementing this interface
`arg_properties` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_properties_interface_emit_property_flags_changed ()

    void                tp_svc_properties_interface_emit_property_flags_changed
                                                            (gpointer instance,
                                                             const GPtrArray *arg_properties);

Type-safe wrapper around g_signal_emit to emit the PropertyFlagsChanged signal on interface org.freedesktop.Telepathy.Properties.

`instance` : | The object implementing this interface
`arg_properties` : | const GPtrArray * (FIXME, generate documentation)

## See Also

TpPropertiesMixin