## IBusProxy

IBusProxy — Base proxy object.

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    #define             IBUS_PROXY_FLAGS                    (obj)
    #define             IBUS_PROXY_SET_FLAGS                (obj,
                                                             flag)
    #define             IBUS_PROXY_UNSET_FLAGS              (obj,
                                                             flag)
    #define             IBUS_PROXY_DESTROYED                (obj)
    struct              IBusProxy;
    struct              IBusProxyClass;
    void                ibus_proxy_destroy                  (IBusProxy *proxy);

## Object Hierarchy

      GObject
       +----GDBusProxy
             +----IBusProxy
                   +----IBusConfig
                   +----IBusInputContext

## Implemented Interfaces

IBusProxy implements GDBusInterface, GInitable and GAsyncInitable.

## Signals

      "destroy"                                        : Run Last

## Description

An IBusProxy is the base of all proxy objects, which communicate the corresponding IBusServices on the other end of IBusConnection. For example, IBus clients (such as editors, web browsers) invoke the proxy object, IBusInputContext to communicate with the InputContext service of the ibus-daemon.

Almost all services have corresponding proxies, except very simple services.

## Details

### IBUS_PROXY_FLAGS()

    #define IBUS_PROXY_FLAGS(obj)             (IBUS_PROXY (obj)->flags)

### IBUS_PROXY_SET_FLAGS()

    #define IBUS_PROXY_SET_FLAGS(obj,flag)    G_STMT_START{ (IBUS_PROXY_FLAGS (obj) |= (flag)); }G_STMT_END

### IBUS_PROXY_UNSET_FLAGS()

    #define IBUS_PROXY_UNSET_FLAGS(obj,flag)  G_STMT_START{ (IBUS_PROXY_FLAGS (obj) &= ~(flag)); }G_STMT_END

### IBUS_PROXY_DESTROYED()

    #define IBUS_PROXY_DESTROYED(obj)         (IBUS_PROXY_FLAGS (obj) & IBUS_DESTROYED)

### struct IBusProxy

    struct IBusProxy;

An opaque data type representing an IBusProxy.

### struct IBusProxyClass

    struct IBusProxyClass {
        GDBusProxyClass parent;

        /* class members */
        void    (* destroy)     (IBusProxy      *proxy);
    };

### ibus_proxy_destroy ()

    void                ibus_proxy_destroy                  (IBusProxy *proxy);

Dispose the proxy object. If the dbus connection is alive and the own variable above is TRUE (which is the default), org.freedesktop.IBus.Service.Destroy method will be called. Note that "destroy" signal might be emitted when ibus_proxy_destroy is called or the underlying dbus connection for the proxy is terminated. In the callback of the destroy signal, you might have to call something like 'g_object_unref(the_proxy);'.

## Signal Details

### The `"destroy"` signal

    void                user_function                      (IBusProxy *object,
                                                            gpointer   user_data)      : Run Last

Destroy and free an IBusProxy

See also: `ibus_proxy_destroy()`.

### Note

Argument `user_data` is ignored in this function.

`object` : | An IBusProxy.
`user_data` : | user data set when the signal handler was connected.