## Service-side Debug base interface

Service-side Debug base interface — GInterface for Telepathy Debug objects

## Synopsis

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

                        TpSvcDebug;
                        TpSvcDebugClass;
    void                (*tp_svc_debug_get_messages_impl)   (TpSvcDebug *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_debug_implement_get_messages (TpSvcDebugClass *klass,
                                                             tp_svc_debug_get_messages_impl impl);
    void                tp_svc_debug_return_from_get_messages
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Messages);
    void                tp_svc_debug_emit_new_debug_message (gpointer instance,
                                                             gdouble arg_time,
                                                             const gchar *arg_domain,
                                                             guint arg_level,
                                                             const gchar *arg_message);

## Object Hierarchy

      GInterface
       +----TpSvcDebug

## Known Implementations

TpSvcDebug is implemented by TpDebugSender.

## Signals

      "new-debug-message"                              : Run Last / Has Details

## Description

This interface (auto-generated from the Telepathy spec) makes it easier to export objects implementing the Telepathy Debug interface.

TpDebugSender provides a reference implementation of the Debug object.

## Details

### TpSvcDebug

    typedef struct _TpSvcDebug TpSvcDebug;

Dummy typedef representing any implementation of this interface.

### TpSvcDebugClass

    typedef struct _TpSvcDebugClass TpSvcDebugClass;

The class of TpSvcDebug.

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

### tp_svc_debug_get_messages_impl ()

    void                (*tp_svc_debug_get_messages_impl)   (TpSvcDebug *self,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_debug_implement_get_messages ()

    void                tp_svc_debug_implement_get_messages (TpSvcDebugClass *klass,
                                                             tp_svc_debug_get_messages_impl impl);

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

### tp_svc_debug_return_from_get_messages ()

    void                tp_svc_debug_return_from_get_messages
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Messages);

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

### tp_svc_debug_emit_new_debug_message ()

    void                tp_svc_debug_emit_new_debug_message (gpointer instance,
                                                             gdouble arg_time,
                                                             const gchar *arg_domain,
                                                             guint arg_level,
                                                             const gchar *arg_message);

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

`instance` : | The object implementing this interface
`arg_time` : | gdouble (FIXME, generate documentation)
`arg_domain` : | const gchar * (FIXME, generate documentation)
`arg_level` : | guint (FIXME, generate documentation)
`arg_message` : | const gchar * (FIXME, generate documentation)

## Signal Details

### The `"new-debug-message"` signal

    void                user_function                      (TpSvcDebug *arg_time,
                                                            gdouble     arg_domain,
                                                            gchar      *arg_level,
                                                            guint       arg_message,
                                                            gchar      *arg4,
                                                            gpointer    user_data)        : Run Last / Has Details

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

`arg_time` : | gdouble (FIXME, generate documentation)
`arg_domain` : | const gchar * (FIXME, generate documentation)
`arg_level` : | guint (FIXME, generate documentation)
`arg_message` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.