## Service-side TLS interfaces

Service-side TLS interfaces — GInterfaces to implement Chan.T.ServerTLSConnection

## Synopsis

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

                        TpSvcChannelTypeServerTLSConnection;
                        TpSvcChannelTypeServerTLSConnectionClass;

                        TpSvcAuthenticationTLSCertificate;
                        TpSvcAuthenticationTLSCertificateClass;
    void                (*tp_svc_authentication_tls_certificate_accept_impl)
                                                            (TpSvcAuthenticationTLSCertificate *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_authentication_tls_certificate_return_from_accept
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_authentication_tls_certificate_implement_accept
                                                            (TpSvcAuthenticationTLSCertificateClass *klass,
                                                             tp_svc_authentication_tls_certificate_accept_impl impl);
    void                tp_svc_authentication_tls_certificate_emit_accepted
                                                            (gpointer instance);
    void                (*tp_svc_authentication_tls_certificate_reject_impl)
                                                            (TpSvcAuthenticationTLSCertificate *self,
                                                             const GPtrArray *in_Rejections,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_authentication_tls_certificate_return_from_reject
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_authentication_tls_certificate_implement_reject
                                                            (TpSvcAuthenticationTLSCertificateClass *klass,
                                                             tp_svc_authentication_tls_certificate_reject_impl impl);
    void                tp_svc_authentication_tls_certificate_emit_rejected
                                                            (gpointer instance,
                                                             const GPtrArray *arg_Rejections);

## Object Hierarchy

      GInterface
       +----TpSvcChannelTypeServerTLSConnection

      GInterface
       +----TpSvcAuthenticationTLSCertificate

## Signals

      "accepted"                                       : Has Details
      "rejected"                                       : Has Details

## Description

Channel.Type.ServerTLSConnection can be handled by clients to check servers' TLS certificates interactively. The actual certificates are represented by a separate TLSCertificate object.

## Details

### TpSvcChannelTypeServerTLSConnection

    typedef struct _TpSvcChannelTypeServerTLSConnection TpSvcChannelTypeServerTLSConnection;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelTypeServerTLSConnectionClass

    typedef struct _TpSvcChannelTypeServerTLSConnectionClass TpSvcChannelTypeServerTLSConnectionClass;

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

### TpSvcAuthenticationTLSCertificate

    typedef struct _TpSvcAuthenticationTLSCertificate TpSvcAuthenticationTLSCertificate;

Dummy typedef representing any implementation of this interface.

### TpSvcAuthenticationTLSCertificateClass

    typedef struct _TpSvcAuthenticationTLSCertificateClass TpSvcAuthenticationTLSCertificateClass;

The class of TpSvcAuthenticationTLSCertificate.

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_authentication_tls_certificate (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_authentication_tls_certificate_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (accept);
      IMPLEMENT (reject);
    #undef IMPLEMENT
    }

### tp_svc_authentication_tls_certificate_accept_impl ()

    void                (*tp_svc_authentication_tls_certificate_accept_impl)
                                                            (TpSvcAuthenticationTLSCertificate *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Accept on interface org.freedesktop.Telepathy.Authentication.TLSCertificate.

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

### tp_svc_authentication_tls_certificate_return_from_accept ()

    void                tp_svc_authentication_tls_certificate_return_from_accept
                                                            (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_authentication_tls_certificate_implement_accept ()

    void                tp_svc_authentication_tls_certificate_implement_accept
                                                            (TpSvcAuthenticationTLSCertificateClass *klass,
                                                             tp_svc_authentication_tls_certificate_accept_impl impl);

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

### tp_svc_authentication_tls_certificate_emit_accepted ()

    void                tp_svc_authentication_tls_certificate_emit_accepted
                                                            (gpointer instance);

Type-safe wrapper around g_signal_emit to emit the Accepted signal on interface org.freedesktop.Telepathy.Authentication.TLSCertificate.

`instance` : | The object implementing this interface

### tp_svc_authentication_tls_certificate_reject_impl ()

    void                (*tp_svc_authentication_tls_certificate_reject_impl)
                                                            (TpSvcAuthenticationTLSCertificate *self,
                                                             const GPtrArray *in_Rejections,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Reject on interface org.freedesktop.Telepathy.Authentication.TLSCertificate.

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

### tp_svc_authentication_tls_certificate_return_from_reject ()

    void                tp_svc_authentication_tls_certificate_return_from_reject
                                                            (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_authentication_tls_certificate_implement_reject ()

    void                tp_svc_authentication_tls_certificate_implement_reject
                                                            (TpSvcAuthenticationTLSCertificateClass *klass,
                                                             tp_svc_authentication_tls_certificate_reject_impl impl);

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

### tp_svc_authentication_tls_certificate_emit_rejected ()

    void                tp_svc_authentication_tls_certificate_emit_rejected
                                                            (gpointer instance,
                                                             const GPtrArray *arg_Rejections);

Type-safe wrapper around g_signal_emit to emit the Rejected signal on interface org.freedesktop.Telepathy.Authentication.TLSCertificate.

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

## Signal Details

### The `"accepted"` signal

    void                user_function                      (TpSvcAuthenticationTLSCertificate *self,
                                                            gpointer                           user_data)      : Has Details

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

`self` : | an object
`user_data` : | user data set when the signal handler was connected.

### The `"rejected"` signal

    void                user_function                      (TpSvcAuthenticationTLSCertificate *self,
                                                            gpointer                           user_data)      : Has Details

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

`self` : | an object
`arg_Rejections` : | const GPtrArray * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.