static void
tp_yts_client_class_init (TpYtsClientClass *klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  TpBaseClientClass *base_class = TP_BASE_CLIENT_CLASS (klass);

  object_class->constructed = tp_yts_client_constructed;
  object_class->dispose = tp_yts_client_dispose;
  object_class->finalize = tp_yts_client_finalize;
  object_class->get_property = tp_yts_client_get_property;
  object_class->set_property = tp_yts_client_set_property;

  base_class->handle_channels = tp_yts_client_handle_channels;

  g_type_class_add_private (klass, sizeof (TpYtsClientPrivate));

  /**
   * TpYtsClient:service-name:
   *
   * The local Ytstenut service name.
   */
  g_object_class_install_property (object_class, PROP_SERVICE_NAME,
      g_param_spec_string ("service-name", "Service Name",
          "Ytstenut Service Name", NULL,
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));

  /**
   * TpYtsClient:account:
   *
   * The local Ytstenut account to use for accepting and creating channels.
   */
  g_object_class_install_property (object_class, PROP_ACCOUNT,
      g_param_spec_object ("account", "Account", "Local Ytstenut Account",
          TP_TYPE_ACCOUNT,
          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));

  /**
   * TpYtsClient::received-channels:
   *
   * This signal is emitted when one or more new incoming channels are
   * available. Use tp_yts_client_accept_channel() to access the new incoming
   * channel(s).
   */
  signals[RECEIVED_CHANNELS] =
    g_signal_new ("received-channels",
      G_TYPE_FROM_CLASS (klass),
      G_SIGNAL_RUN_LAST, 0,
      NULL, NULL,
      g_cclosure_marshal_VOID__VOID,
      G_TYPE_NONE,
      0);
}
static void
shell_tp_client_class_init (ShellTpClientClass *cls)
{
  GObjectClass *object_class = G_OBJECT_CLASS (cls);
  TpBaseClientClass *base_clt_cls = TP_BASE_CLIENT_CLASS (cls);

  g_type_class_add_private (cls, sizeof (ShellTpClientPrivate));

  object_class->dispose = shell_tp_client_dispose;

  base_clt_cls->observe_channels = observe_channels;
  base_clt_cls->add_dispatch_operation = add_dispatch_operation;
  base_clt_cls->handle_channels = handle_channels;
}