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

## Synopsis

    #include <telepathy-glib/telepathy-glib-dbus.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_create_channel_with_hints
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Request);
    void                (*tp_svc_channel_dispatcher_create_channel_with_hints_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const gchar *in_Account,
                                                             GHashTable *in_Requested_Properties,
                                                             gint64 in_User_Action_Time,
                                                             const gchar *in_Preferred_Handler,
                                                             GHashTable *in_Hints,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_dispatcher_implement_create_channel_with_hints
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_create_channel_with_hints_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);
    void                tp_svc_channel_dispatcher_return_from_ensure_channel_with_hints
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Request);
    void                (*tp_svc_channel_dispatcher_ensure_channel_with_hints_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const gchar *in_Account,
                                                             GHashTable *in_Requested_Properties,
                                                             gint64 in_User_Action_Time,
                                                             const gchar *in_Preferred_Handler,
                                                             GHashTable *in_Hints,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_dispatcher_implement_ensure_channel_with_hints
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_ensure_channel_with_hints_impl impl);
    void                (*tp_svc_channel_dispatcher_delegate_channels_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const GPtrArray *in_Channels,
                                                             gint64 in_User_Action_Time,
                                                             const gchar *in_Preferred_Handler,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_dispatcher_implement_delegate_channels
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_delegate_channels_impl impl);
    void                tp_svc_channel_dispatcher_implement_present_channel
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_present_channel_impl impl);
    void                (*tp_svc_channel_dispatcher_present_channel_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const gchar *in_Channel,
                                                             gint64 in_User_Action_Time,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_dispatcher_return_from_delegate_channels
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Delegated,
                                                             GHashTable *out_Not_Delegated);
    void                tp_svc_channel_dispatcher_return_from_present_channel
                                                            (DBusGMethodInvocation *context);

                        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);

                        TpSvcChannelDispatcherInterfaceMessages1;
                        TpSvcChannelDispatcherInterfaceMessages1Class;
    void                tp_svc_channel_dispatcher_interface_messages1_implement_send_message
                                                            (TpSvcChannelDispatcherInterfaceMessages1Class *klass,
                                                             tp_svc_channel_dispatcher_interface_messages1_send_message_impl impl);
    void                tp_svc_channel_dispatcher_interface_messages1_return_from_send_message
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Token);
    void                (*tp_svc_channel_dispatcher_interface_messages1_send_message_impl)
                                                            (TpSvcChannelDispatcherInterfaceMessages1 *self,
                                                             const gchar *in_Account,
                                                             const gchar *in_Target_ID,
                                                             const GPtrArray *in_Message,
                                                             guint in_Flags,
                                                             DBusGMethodInvocation *context);

## Object Hierarchy

      GInterface
       +----TpSvcChannelDispatcher

      GInterface
       +----TpSvcChannelDispatcherInterfaceOperationList

      GInterface
       +----TpSvcChannelDispatcherInterfaceMessages1

## Signals

      "dispatch-operation-finished"                    : Has Details
      "new-dispatch-operation"                         : 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);
      IMPLEMENT (create_channel_with_hints);
      IMPLEMENT (ensure_channel_with_hints);
      IMPLEMENT (delegate_channels);
      IMPLEMENT (present_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_create_channel_with_hints ()

    void                tp_svc_channel_dispatcher_return_from_create_channel_with_hints
                                                            (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_with_hints_impl ()

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

The signature of an implementation of the D-Bus method CreateChannelWithHints 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)
`in_Hints` : | GHashTable * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_dispatcher_implement_create_channel_with_hints ()

    void                tp_svc_channel_dispatcher_implement_create_channel_with_hints
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_create_channel_with_hints_impl impl);

Register an implementation for the CreateChannelWithHints 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 CreateChannelWithHints 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

### tp_svc_channel_dispatcher_return_from_ensure_channel_with_hints ()

    void                tp_svc_channel_dispatcher_return_from_ensure_channel_with_hints
                                                            (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_with_hints_impl ()

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

The signature of an implementation of the D-Bus method EnsureChannelWithHints 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)
`in_Hints` : | GHashTable * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_dispatcher_implement_ensure_channel_with_hints ()

    void                tp_svc_channel_dispatcher_implement_ensure_channel_with_hints
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_ensure_channel_with_hints_impl impl);

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

### tp_svc_channel_dispatcher_delegate_channels_impl ()

    void                (*tp_svc_channel_dispatcher_delegate_channels_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const GPtrArray *in_Channels,
                                                             gint64 in_User_Action_Time,
                                                             const gchar *in_Preferred_Handler,
                                                             DBusGMethodInvocation *context);

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

`self` : | The object implementing this interface
`in_Channels` : | const GPtrArray * (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_delegate_channels ()

    void                tp_svc_channel_dispatcher_implement_delegate_channels
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_delegate_channels_impl impl);

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

### tp_svc_channel_dispatcher_implement_present_channel ()

    void                tp_svc_channel_dispatcher_implement_present_channel
                                                            (TpSvcChannelDispatcherClass *klass,
                                                             tp_svc_channel_dispatcher_present_channel_impl impl);

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

### tp_svc_channel_dispatcher_present_channel_impl ()

    void                (*tp_svc_channel_dispatcher_present_channel_impl)
                                                            (TpSvcChannelDispatcher *self,
                                                             const gchar *in_Channel,
                                                             gint64 in_User_Action_Time,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_dispatcher_return_from_delegate_channels ()

    void                tp_svc_channel_dispatcher_return_from_delegate_channels
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Delegated,
                                                             GHashTable *out_Not_Delegated);

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_Delegated` : | const GPtrArray * (FIXME, generate documentation)
`out_Not_Delegated` : | GHashTable * (FIXME, generate documentation)

### tp_svc_channel_dispatcher_return_from_present_channel ()

    void                tp_svc_channel_dispatcher_return_from_present_channel
                                                            (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

### 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)

### TpSvcChannelDispatcherInterfaceMessages1

    typedef struct _TpSvcChannelDispatcherInterfaceMessages1 TpSvcChannelDispatcherInterfaceMessages1;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelDispatcherInterfaceMessages1Class

    typedef struct _TpSvcChannelDispatcherInterfaceMessages1Class TpSvcChannelDispatcherInterfaceMessages1Class;

The class of TpSvcChannelDispatcherInterfaceMessages1.

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_interface_messages1 (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_dispatcher_interface_messages1_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (send_message);
    #undef IMPLEMENT
    }

### tp_svc_channel_dispatcher_interface_messages1_implement_send_message ()

    void                tp_svc_channel_dispatcher_interface_messages1_implement_send_message
                                                            (TpSvcChannelDispatcherInterfaceMessages1Class *klass,
                                                             tp_svc_channel_dispatcher_interface_messages1_send_message_impl impl);

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

### tp_svc_channel_dispatcher_interface_messages1_return_from_send_message ()

    void                tp_svc_channel_dispatcher_interface_messages1_return_from_send_message
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Token);

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

### tp_svc_channel_dispatcher_interface_messages1_send_message_impl ()

    void                (*tp_svc_channel_dispatcher_interface_messages1_send_message_impl)
                                                            (TpSvcChannelDispatcherInterfaceMessages1 *self,
                                                             const gchar *in_Account,
                                                             const gchar *in_Target_ID,
                                                             const GPtrArray *in_Message,
                                                             guint in_Flags,
                                                             DBusGMethodInvocation *context);

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

`self` : | The object implementing this interface
`in_Account` : | const gchar * (FIXME, generate documentation)
`in_Target_ID` : | const gchar * (FIXME, generate documentation)
`in_Message` : | const GPtrArray * (FIXME, generate documentation)
`in_Flags` : | guint (FIXME, generate documentation)
`context` : | Used to return values or throw an error

## Signal Details

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

    void                user_function                      (TpSvcChannelDispatcherInterfaceOperationList *self,
                                                            DBusGObjectPath                              *arg_Dispatch_Operation,
                                                            gpointer                                      user_data)                   : Has Details

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

`self` : | an object
`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 *self,
                                                            DBusGObjectPath                              *arg_Dispatch_Operation,
                                                            gpointer                                      user_data)                   : Has Details

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

`self` : | an object
`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.