## Service-side Channel Dispatcher interface Service-side Channel Dispatcher interface — GInterfaces for Telepathy ChannelDispatcher object |

## Synopsis

    #include <telepathy-glib/svc-channel-dispatcher.h>

                        TpSvcChannelDispatcher;
                        TpSvcChannelDispatcherClass;
    void                tp_svc_channel_dispatcher_return_from_create_channel
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Request);
    void                (*tp_svc_channel_dispatcher_create_channel_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const gchar *in_Account,
                                                             GHashTable *in_Requested_Properties,
                                                             gint64 in_User_Action_Time,
                                                             const gchar *in_Preferred_Handler,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_dispatcher_implement_create_channel
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_create_channel_impl impl);
    void                tp_svc_channel_dispatcher_return_from_ensure_channel
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Request);
    void                (*tp_svc_channel_dispatcher_ensure_channel_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const gchar *in_Account,
                                                             GHashTable *in_Requested_Properties,
                                                             gint64 in_User_Action_Time,
                                                             const gchar *in_Preferred_Handler,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_dispatcher_implement_ensure_channel
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_ensure_channel_impl impl);

                        TpSvcChannelDispatcherInterfaceOperationList;
                        TpSvcChannelDispatcherInterfaceOperationListClass;
    void                tp_svc_channel_dispatcher_interface_operation_list_emit_new_dispatch_operation
                                                            (gpointer instance,
                                                             const gchar *arg_Dispatch_Operation,
                                                             GHashTable *arg_Properties);
    void                tp_svc_channel_dispatcher_interface_operation_list_emit_dispatch_operation_finished
                                                            (gpointer instance,
                                                             const gchar *arg_Dispatch_Operation);

## Object Hierarchy

      GInterface
       +----TpSvcChannelDispatcher

      GInterface
       +----TpSvcChannelDispatcherInterfaceOperationList

## Signals

      "dispatch-operation-finished"                    : Run Last / Has Details
      "new-dispatch-operation"                         : Run Last / Has Details

## Description

The TpSvcChannelDispatcher interface (auto-generated from the Telepathy spec) makes it easier to export an object implementing the Telepathy ChannelDispatcher interface, with the correct method and signal signatures, and emit signals from that object in a type-safe way.

Similarly, TpSvcChannelDispatcherInterfaceOperationList helps to implement the optional OperationList interface.

You don't need these interfaces unless you're implementing a Telepathy ChannelDispatcher, such as Mission Control.

## Details

### TpSvcChannelDispatcher

    typedef struct _TpSvcChannelDispatcher TpSvcChannelDispatcher;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelDispatcherClass

    typedef struct _TpSvcChannelDispatcherClass TpSvcChannelDispatcherClass;

The class of TpSvcChannelDispatcher.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_dispatcher (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_dispatcher_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (create_channel);
      IMPLEMENT (ensure_channel);
    #undef IMPLEMENT
    }

### tp_svc_channel_dispatcher_return_from_create_channel ()

    void                tp_svc_channel_dispatcher_return_from_create_channel
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Request);

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_Request` : | const gchar * (FIXME, generate documentation)

### tp_svc_channel_dispatcher_create_channel_impl ()

    void                (*tp_svc_channel_dispatcher_create_channel_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const gchar *in_Account,
                                                             GHashTable *in_Requested_Properties,
                                                             gint64 in_User_Action_Time,
                                                             const gchar *in_Preferred_Handler,
                                                             DBusGMethodInvocation *context);

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

`self` : | The object implementing this interface
`in_Account` : | const gchar * (FIXME, generate documentation)
`in_Requested_Properties` : | GHashTable * (FIXME, generate documentation)
`in_User_Action_Time` : | gint64 (FIXME, generate documentation)
`in_Preferred_Handler` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_dispatcher_implement_create_channel ()

    void                tp_svc_channel_dispatcher_implement_create_channel
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_create_channel_impl impl);

Register an implementation for the CreateChannel 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 CreateChannel D-Bus method

### tp_svc_channel_dispatcher_return_from_ensure_channel ()

    void                tp_svc_channel_dispatcher_return_from_ensure_channel
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Request);

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_Request` : | const gchar * (FIXME, generate documentation)

### tp_svc_channel_dispatcher_ensure_channel_impl ()

    void                (*tp_svc_channel_dispatcher_ensure_channel_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const gchar *in_Account,
                                                             GHashTable *in_Requested_Properties,
                                                             gint64 in_User_Action_Time,
                                                             const gchar *in_Preferred_Handler,
                                                             DBusGMethodInvocation *context);

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

`self` : | The object implementing this interface
`in_Account` : | const gchar * (FIXME, generate documentation)
`in_Requested_Properties` : | GHashTable * (FIXME, generate documentation)
`in_User_Action_Time` : | gint64 (FIXME, generate documentation)
`in_Preferred_Handler` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_dispatcher_implement_ensure_channel ()

    void                tp_svc_channel_dispatcher_implement_ensure_channel
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_ensure_channel_impl impl);

Register an implementation for the EnsureChannel 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 EnsureChannel D-Bus method

### TpSvcChannelDispatcherInterfaceOperationList

    typedef struct _TpSvcChannelDispatcherInterfaceOperationList TpSvcChannelDispatcherInterfaceOperationList;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelDispatcherInterfaceOperationListClass

    typedef struct _TpSvcChannelDispatcherInterfaceOperationListClass TpSvcChannelDispatcherInterfaceOperationListClass;

The class of TpSvcChannelDispatcherInterfaceOperationList. This interface has no D-Bus methods, so an implementation can typically pass `NULL` to `G_IMPLEMENT_INTERFACE()` as the interface initialization function.

### tp_svc_channel_dispatcher_interface_operation_list_emit_new_dispatch_operation ()

    void                tp_svc_channel_dispatcher_interface_operation_list_emit_new_dispatch_operation
                                                            (gpointer instance,
                                                             const gchar *arg_Dispatch_Operation,
                                                             GHashTable *arg_Properties);

Type-safe wrapper around g_signal_emit to emit the NewDispatchOperation signal on interface org.freedesktop.Telepathy.ChannelDispatcher.Interface.OperationList.

`instance` : | The object implementing this interface
`arg_Dispatch_Operation` : | const gchar * (FIXME, generate documentation)
`arg_Properties` : | GHashTable * (FIXME, generate documentation)

### tp_svc_channel_dispatcher_interface_operation_list_emit_dispatch_operation_finished ()

    void                tp_svc_channel_dispatcher_interface_operation_list_emit_dispatch_operation_finished
                                                            (gpointer instance,
                                                             const gchar *arg_Dispatch_Operation);

Type-safe wrapper around g_signal_emit to emit the DispatchOperationFinished signal on interface org.freedesktop.Telepathy.ChannelDispatcher.Interface.OperationList.

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

## Signal Details

### The `"dispatch-operation-finished"` signal

    void                user_function                      (TpSvcChannelDispatcherInterfaceOperationList *arg_Dispatch_Operation,
                                                            DBusGObjectPath                              *arg1,
                                                            gpointer                                      user_data)                   : Run Last / Has Details

The DispatchOperationFinished D-Bus signal is emitted whenever this GObject signal is.

`arg_Dispatch_Operation` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"new-dispatch-operation"` signal

    void                user_function                      (TpSvcChannelDispatcherInterfaceOperationList *arg_Dispatch_Operation,
                                                            DBusGObjectPath                              *arg_Properties,
                                                            gpointer                                      user_data)                   : Run Last / Has Details

The NewDispatchOperation D-Bus signal is emitted whenever this GObject signal is.

`arg_Dispatch_Operation` : | const gchar * (FIXME, generate documentation)
`arg_Properties` : | GHashTable * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.