/*
 * This file is generated by gdbus-codegen, do not modify it.
 *
 * The license of this code is the same as for the D-Bus interface description
 * it was derived from. Note that it links to GLib, so must comply with the
 * LGPL linking clauses.
 */

#ifndef __IPC_SERVICE_H__
#define __IPC_SERVICE_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.Sysprof3.Service */

#define IPC_TYPE_SERVICE (ipc_service_get_type ())
#define IPC_SERVICE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), IPC_TYPE_SERVICE, IpcService))
#define IPC_IS_SERVICE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), IPC_TYPE_SERVICE))
#define IPC_SERVICE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), IPC_TYPE_SERVICE, IpcServiceIface))

struct _IpcService;
typedef struct _IpcService IpcService;
typedef struct _IpcServiceIface IpcServiceIface;

struct _IpcServiceIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_get_proc_fd) (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    const gchar *arg_path);

  gboolean (*handle_get_proc_file) (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path);

  gboolean (*handle_get_process_info) (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_attributes);

  gboolean (*handle_list_processes) (
    IpcService *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_perf_event_open) (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *arg_options,
    gint arg_pid,
    gint arg_cpu,
    GVariant *arg_group_fd,
    guint64 arg_flags);

  gboolean (*handle_set_governor) (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_governor);

  gboolean (*handle_set_paranoid) (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    gint arg_paranoid);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (IpcService, g_object_unref)
#endif

GType ipc_service_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *ipc_service_interface_info (void);
guint ipc_service_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void ipc_service_complete_perf_event_open (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *perf_stream_fd);

void ipc_service_complete_get_proc_file (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    const gchar *contents);

void ipc_service_complete_get_proc_fd (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *fd);

void ipc_service_complete_list_processes (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    GVariant *processes);

void ipc_service_complete_get_process_info (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    GVariant *processes);

void ipc_service_complete_set_governor (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    const gchar *old_governor);

void ipc_service_complete_set_paranoid (
    IpcService *object,
    GDBusMethodInvocation *invocation,
    gint old_paranoid);



/* D-Bus method calls: */
void ipc_service_call_perf_event_open (
    IpcService *proxy,
    GVariant *arg_options,
    gint arg_pid,
    gint arg_cpu,
    GVariant *arg_group_fd,
    guint64 arg_flags,
    GUnixFDList *fd_list,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_service_call_perf_event_open_finish (
    IpcService *proxy,
    GVariant ** out_perf_stream_fd,
    GUnixFDList **out_fd_list,
    GAsyncResult *res,
    GError **error);

gboolean ipc_service_call_perf_event_open_sync (
    IpcService *proxy,
    GVariant *arg_options,
    gint arg_pid,
    gint arg_cpu,
    GVariant *arg_group_fd,
    guint64 arg_flags,
    GUnixFDList  *fd_list,
    GVariant ** out_perf_stream_fd,
    GUnixFDList **out_fd_list,
    GCancellable *cancellable,
    GError **error);

void ipc_service_call_get_proc_file (
    IpcService *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_service_call_get_proc_file_finish (
    IpcService *proxy,
    gchar ** out_contents,
    GAsyncResult *res,
    GError **error);

gboolean ipc_service_call_get_proc_file_sync (
    IpcService *proxy,
    const gchar *arg_path,
    gchar ** out_contents,
    GCancellable *cancellable,
    GError **error);

void ipc_service_call_get_proc_fd (
    IpcService *proxy,
    const gchar *arg_path,
    GUnixFDList *fd_list,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_service_call_get_proc_fd_finish (
    IpcService *proxy,
    GVariant ** out_fd,
    GUnixFDList **out_fd_list,
    GAsyncResult *res,
    GError **error);

gboolean ipc_service_call_get_proc_fd_sync (
    IpcService *proxy,
    const gchar *arg_path,
    GUnixFDList  *fd_list,
    GVariant ** out_fd,
    GUnixFDList **out_fd_list,
    GCancellable *cancellable,
    GError **error);

void ipc_service_call_list_processes (
    IpcService *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_service_call_list_processes_finish (
    IpcService *proxy,
    GVariant ** out_processes,
    GAsyncResult *res,
    GError **error);

gboolean ipc_service_call_list_processes_sync (
    IpcService *proxy,
    GVariant ** out_processes,
    GCancellable *cancellable,
    GError **error);

void ipc_service_call_get_process_info (
    IpcService *proxy,
    const gchar *arg_attributes,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_service_call_get_process_info_finish (
    IpcService *proxy,
    GVariant ** out_processes,
    GAsyncResult *res,
    GError **error);

gboolean ipc_service_call_get_process_info_sync (
    IpcService *proxy,
    const gchar *arg_attributes,
    GVariant ** out_processes,
    GCancellable *cancellable,
    GError **error);

void ipc_service_call_set_governor (
    IpcService *proxy,
    const gchar *arg_governor,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_service_call_set_governor_finish (
    IpcService *proxy,
    gchar ** out_old_governor,
    GAsyncResult *res,
    GError **error);

gboolean ipc_service_call_set_governor_sync (
    IpcService *proxy,
    const gchar *arg_governor,
    gchar ** out_old_governor,
    GCancellable *cancellable,
    GError **error);

void ipc_service_call_set_paranoid (
    IpcService *proxy,
    gint arg_paranoid,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_service_call_set_paranoid_finish (
    IpcService *proxy,
    gint* out_old_paranoid,
    GAsyncResult *res,
    GError **error);

gboolean ipc_service_call_set_paranoid_sync (
    IpcService *proxy,
    gint arg_paranoid,
    gint* out_old_paranoid,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define IPC_TYPE_SERVICE_PROXY (ipc_service_proxy_get_type ())
#define IPC_SERVICE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), IPC_TYPE_SERVICE_PROXY, IpcServiceProxy))
#define IPC_SERVICE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), IPC_TYPE_SERVICE_PROXY, IpcServiceProxyClass))
#define IPC_SERVICE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), IPC_TYPE_SERVICE_PROXY, IpcServiceProxyClass))
#define IPC_IS_SERVICE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), IPC_TYPE_SERVICE_PROXY))
#define IPC_IS_SERVICE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), IPC_TYPE_SERVICE_PROXY))

typedef struct _IpcServiceProxy IpcServiceProxy;
typedef struct _IpcServiceProxyClass IpcServiceProxyClass;
typedef struct _IpcServiceProxyPrivate IpcServiceProxyPrivate;

struct _IpcServiceProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  IpcServiceProxyPrivate *priv;
};

struct _IpcServiceProxyClass
{
  GDBusProxyClass parent_class;
};

GType ipc_service_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (IpcServiceProxy, g_object_unref)
#endif

void ipc_service_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
IpcService *ipc_service_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
IpcService *ipc_service_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void ipc_service_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
IpcService *ipc_service_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
IpcService *ipc_service_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define IPC_TYPE_SERVICE_SKELETON (ipc_service_skeleton_get_type ())
#define IPC_SERVICE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), IPC_TYPE_SERVICE_SKELETON, IpcServiceSkeleton))
#define IPC_SERVICE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), IPC_TYPE_SERVICE_SKELETON, IpcServiceSkeletonClass))
#define IPC_SERVICE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), IPC_TYPE_SERVICE_SKELETON, IpcServiceSkeletonClass))
#define IPC_IS_SERVICE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), IPC_TYPE_SERVICE_SKELETON))
#define IPC_IS_SERVICE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), IPC_TYPE_SERVICE_SKELETON))

typedef struct _IpcServiceSkeleton IpcServiceSkeleton;
typedef struct _IpcServiceSkeletonClass IpcServiceSkeletonClass;
typedef struct _IpcServiceSkeletonPrivate IpcServiceSkeletonPrivate;

struct _IpcServiceSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  IpcServiceSkeletonPrivate *priv;
};

struct _IpcServiceSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType ipc_service_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (IpcServiceSkeleton, g_object_unref)
#endif

IpcService *ipc_service_skeleton_new (void);


G_END_DECLS

#endif /* __IPC_SERVICE_H__ */
