## DBusGMethod DBusGMethod — GMethod Info & Invocation |

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    #include <dbus/dbus-glib.h>

    struct              DBusGMethodInfo;
                        DBusGMethodInvocation;
    gchar *             dbus_g_method_get_sender            (DBusGMethodInvocation *context);
    DBusMessage *       dbus_g_method_get_reply             (DBusGMethodInvocation *context);
    void                dbus_g_method_send_reply            (DBusGMethodInvocation *context,
                                                             DBusMessage *reply);
    void                dbus_g_method_return                (DBusGMethodInvocation *context,
                                                             ...);
    void                dbus_g_method_return_error          (DBusGMethodInvocation *context,
                                                             const GError *error);

## Description

These types are used to call methods on GObject objects.

## Details

### struct DBusGMethodInfo

    struct DBusGMethodInfo {
      GCallback                 function;
      GClosureMarshal           marshaller;
      int                       data_offset;
    };

Object typically generated by dbus-binding-tool that stores a mapping from introspection data to a function pointer for a C method to be invoked.

GCallback `function`; | C method to invoke
GClosureMarshal `marshaller`; | Marshaller to invoke method
int `data_offset`; | Offset into the introspection data

### DBusGMethodInvocation

    typedef struct _DBusGMethodInvocation DBusGMethodInvocation;

The context of an asynchronous method call. See `dbus_g_method_return()` and `dbus_g_method_return_error()`.

### dbus_g_method_get_sender ()

    gchar *             dbus_g_method_get_sender            (DBusGMethodInvocation *context);

Get the sender of a message so we can send a "reply" later (i.e. send a message directly to a service which invoked the method at a later time).

`context` : | the method context
Returns : | the unique name of the sender. It is up to the caller to free the returned string.

### dbus_g_method_get_reply ()

    DBusMessage *       dbus_g_method_get_reply             (DBusGMethodInvocation *context);

Get the reply message to append reply values Used as a sidedoor when you can't generate dbus values of the correct type due to glib binding limitations

`context` : | the method context
Returns : | a DBusMessage with the reply

### dbus_g_method_send_reply ()

    void                dbus_g_method_send_reply            (DBusGMethodInvocation *context,
                                                             DBusMessage *reply);

Send a manually created reply message.

Used as a sidedoor when you can't generate dbus values of the correct type due to glib binding limitations

`context` : | the method context
`reply` : | the reply message, will be unreffed

### dbus_g_method_return ()

    void                dbus_g_method_return                (DBusGMethodInvocation *context,
                                                             ...);

Send a return message for a given method invocation, with arguments. This function also frees the sending context.

`context` : | the method context
`...` : | zero or more values to return from the method, with their number and types given by its DBusGObjectInfo

### dbus_g_method_return_error ()

    void                dbus_g_method_return_error          (DBusGMethodInvocation *context,
                                                             const GError *error);

Send a error message for a given method invocation. This function also frees the sending context.

`context` : | the method context
`error` : | the error to send

## See Also

DBusGMessage