Class DBus::Binding::DBusServer
In: ruby-dbus.c
Parent: Object

A DBusServer listens for and handles connections from clients.

This class isn’t particularly useful right now, as it does not provide new connection, watch, and timeout callback functionality yet.

Methods

Public Class methods

Creates a new server instance listening for connections on the given address.

See DBusConnection#new for details on the format of the address.

[Source]

/*
 *  call-seq:
 *      listen(address) => server
 *
 *  Creates a new server instance listening for connections on the given
 *  address.
 *
 *  See DBusConnection#new for details on the format of the address.
 */
static VALUE
cDBusServer_listen(VALUE klass, VALUE address)
{
  DBusServer *server = NULL;

  RDBUS_TRY(server = dbus_server_listen(StringValuePtr(address), &error));
  RDBUS_RAISE_IF(server == NULL, "failed to create DBusServer");
  return SERVER_NEW_TAKE_OWNERSHIP(server);
}

Creates a new server instance listening for connections on the given address.

See DBusConnection#new for details on the format of the address.

[Source]

/*
 *  call-seq:
 *      listen(address) => server
 *
 *  Creates a new server instance listening for connections on the given
 *  address.
 *
 *  See DBusConnection#new for details on the format of the address.
 */
static VALUE
cDBusServer_listen(VALUE klass, VALUE address)
{
  DBusServer *server = NULL;

  RDBUS_TRY(server = dbus_server_listen(StringValuePtr(address), &error));
  RDBUS_RAISE_IF(server == NULL, "failed to create DBusServer");
  return SERVER_NEW_TAKE_OWNERSHIP(server);
}

Public Instance methods

Releases the server’s address and stops listening for new clients.

[Source]

/*
 *  call-seq:
 *      disconnect => nil
 *
 *  Releases the server's address and stops listening for new clients.
 */
static VALUE
cDBusServer_disconnect(VALUE self)
{
  dbus_server_disconnect(SERVER_GET(self));
  return Qnil;
}

Returns the address the server is listening on.

[Source]

/*
 *  call-seq:
 *      get_address => address
 *
 *  Returns the address the server is listening on.
 */
static VALUE
cDBusServer_get_address(VALUE self)
{
  char *address = NULL;
  VALUE address_r;

  address = dbus_server_get_address(SERVER_GET(self));
  if (address == NULL)
    return Qnil;
  address_r = rb_str_new2(address);
  dbus_free(address);
  return address_r;
}

Returns true if the server is still listening for new clients.

[Source]

/*
 *  call-seq:
 *      get_is_connected => true|false
 *
 *  Returns +true+ if the server is still listening for new clients.
 */
static VALUE
cDBusServer_get_is_connected(VALUE self)
{
  if (dbus_server_get_is_connected(SERVER_GET(self)))
    return Qtrue;
  return Qfalse;
}

Sets up the dispatching of the server to integrate with the GLIB main loop.

[Source]

/*
 *  call-seq:
 *      setup_with_g_main => nil
 *
 *  Sets up the dispatching of the server to integrate with the GLIB main
 *  loop.
 */
static VALUE
cDBusServer_setup_with_g_main(VALUE self)
{
  dbus_server_setup_with_g_main(SERVER_GET(self), NULL);
  return Qnil;
}

[Validate]