## IBusService IBusService — IBus service back-end. |

## Stability Level

Stable, unless otherwise indicated

## Functions

IBusService * | ibus_service_new ()
const gchar * | ibus_service_get_object_path ()
GDBusConnection * | ibus_service_get_connection ()
gboolean | ibus_service_register ()
void | ibus_service_unregister ()
gboolean | ibus_service_emit_signal ()
gboolean | ibus_service_class_add_interfaces ()
int | ibus_service_class_free_interfaces ()

## Types and Values

struct | IBusService

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── IBusObject
                ╰── IBusService
                    ├── IBusFactory
                    ├── IBusConfigService
                    ├── IBusEngine
                    ╰── IBusPanelService

## Description

An IBusService is a base class for services.

## Functions

### ibus_service_new ()

    IBusService *
    ibus_service_new (GDBusConnection *connection,
                      const gchar *path);

Creantes a new IBusService.

#### Parameters

connection | A GDBusConnection. |
path | Object path. |

#### Returns

A newly allocated IBusService

### ibus_service_get_object_path ()

    const gchar *
    ibus_service_get_object_path (IBusService *service);

Gets the object path of an IBusService.

#### Parameters

service | An IBusService. |

#### Returns

The object path of `service`

### ibus_service_get_connection ()

    GDBusConnection *
    ibus_service_get_connection (IBusService *service);

Gets a connections.

#### Parameters

service | An IBusService. |

#### Returns

A GDBusConnection of an IBusService instance.

[transfer none]

### ibus_service_register ()

    gboolean
    ibus_service_register (IBusService *service,
                           GDBusConnection *connection,
                           GError **error);

Registers service to a connection.

#### Parameters

service | An IBusService. |
connection | A GDBusConnection the service will be registered to. |
error | Return location for error or NULL. |

#### Returns

`TRUE` if the service was registered, `FALSE` otherwise.

### ibus_service_unregister ()

    void
    ibus_service_unregister (IBusService *service,
                             GDBusConnection *connection);

Unregisters service from a connection.

#### Parameters

service | An IBusService. |
connection | A GDBusConnection the service was registered with. |

### ibus_service_emit_signal ()

    gboolean
    ibus_service_emit_signal (IBusService *service,
                              const gchar *dest_bus_name,
                              const gchar *interface_name,
                              const gchar *signal_name,
                              GVariant *parameters,
                              GError **error);

### ibus_service_class_add_interfaces ()

    gboolean
    ibus_service_class_add_interfaces (IBusServiceClass *klass,
                                       const gchar *xml_data);

Set the interface introspection information with the service class.

#### Parameters

klass | An IBusServiceClass. |
xml_data | The introspection xml data. |

#### Returns

`TRUE` if `xml_data` is valid and succeeded to be added; `FALSE` otherwise.

### ibus_service_class_free_interfaces ()

    int
    ibus_service_class_free_interfaces (IBusServiceClass *klass,
                                        int depth);

Free the first `depth` interfaces if `depth` is positive. Free the last -`depth` interfaces if `depth` is negative.

#### Parameters

klass | An IBusServiceClass. |
depth | The number of D-Bus introspection interfaces. |

#### Returns

The actual freed number of the introspection interfaces if `depth` is not 0. If `depth` is 0, the total number of the introspection interfaces is returned but any interfaces are not freed.

## Types and Values

### struct IBusService

    struct IBusService;

An opaque data type representing an IBusService.