/*
 * 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_GIT_REPOSITORY_H__
#define __IPC_GIT_REPOSITORY_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.Builder.Git.Repository */

#define IPC_TYPE_GIT_REPOSITORY (ipc_git_repository_get_type ())
#define IPC_GIT_REPOSITORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), IPC_TYPE_GIT_REPOSITORY, IpcGitRepository))
#define IPC_IS_GIT_REPOSITORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), IPC_TYPE_GIT_REPOSITORY))
#define IPC_GIT_REPOSITORY_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), IPC_TYPE_GIT_REPOSITORY, IpcGitRepositoryIface))

struct _IpcGitRepository;
typedef struct _IpcGitRepository IpcGitRepository;
typedef struct _IpcGitRepositoryIface IpcGitRepositoryIface;

struct _IpcGitRepositoryIface
{
  GTypeInterface parent_iface;



  gboolean (*handle_blame) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path);

  gboolean (*handle_close) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_commit) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_details,
    guint arg_flags);

  gboolean (*handle_create_change_monitor) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path);

  gboolean (*handle_get_remote_url) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_remote_name);

  gboolean (*handle_list_refs_by_kind) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    guint arg_kind);

  gboolean (*handle_list_status) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path);

  gboolean (*handle_load_config) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_path_is_ignored) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path);

  gboolean (*handle_push) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_remote,
    const gchar *const *arg_ref_specs,
    guint arg_flags,
    const gchar *arg_progress_path);

  gboolean (*handle_stage_file) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_path);

  gboolean (*handle_switch_branch) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_name);

  gboolean (*handle_update_submodules) (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    gboolean arg_init,
    const gchar *arg_progress_path);

  const gchar * (*get_branch) (IpcGitRepository *object);

  const gchar * (*get_location) (IpcGitRepository *object);

  const gchar * (*get_workdir) (IpcGitRepository *object);

  void (*changed) (
    IpcGitRepository *object);

  void (*closed) (
    IpcGitRepository *object);

};

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

GType ipc_git_repository_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *ipc_git_repository_interface_info (void);
guint ipc_git_repository_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void ipc_git_repository_complete_close (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation);

void ipc_git_repository_complete_path_is_ignored (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    gboolean ignored);

void ipc_git_repository_complete_list_refs_by_kind (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *const *refs);

void ipc_git_repository_complete_list_status (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    GVariant *files);

void ipc_git_repository_complete_switch_branch (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation);

void ipc_git_repository_complete_create_change_monitor (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *obj_path);

void ipc_git_repository_complete_blame (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *obj_path);

void ipc_git_repository_complete_stage_file (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation);

void ipc_git_repository_complete_commit (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation);

void ipc_git_repository_complete_push (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation);

void ipc_git_repository_complete_load_config (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *config_path);

void ipc_git_repository_complete_update_submodules (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation);

void ipc_git_repository_complete_get_remote_url (
    IpcGitRepository *object,
    GDBusMethodInvocation *invocation,
    const gchar *url);



/* D-Bus signal emissions functions: */
void ipc_git_repository_emit_changed (
    IpcGitRepository *object);

void ipc_git_repository_emit_closed (
    IpcGitRepository *object);



/* D-Bus method calls: */
void ipc_git_repository_call_close (
    IpcGitRepository *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_git_repository_call_close_finish (
    IpcGitRepository *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_close_sync (
    IpcGitRepository *proxy,
    GCancellable *cancellable,
    GError **error);

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

gboolean ipc_git_repository_call_path_is_ignored_finish (
    IpcGitRepository *proxy,
    gboolean* out_ignored,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_path_is_ignored_sync (
    IpcGitRepository *proxy,
    const gchar *arg_path,
    gboolean* out_ignored,
    GCancellable *cancellable,
    GError **error);

void ipc_git_repository_call_list_refs_by_kind (
    IpcGitRepository *proxy,
    guint arg_kind,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_git_repository_call_list_refs_by_kind_finish (
    IpcGitRepository *proxy,
    gchar *** out_refs,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_list_refs_by_kind_sync (
    IpcGitRepository *proxy,
    guint arg_kind,
    gchar *** out_refs,
    GCancellable *cancellable,
    GError **error);

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

gboolean ipc_git_repository_call_list_status_finish (
    IpcGitRepository *proxy,
    GVariant ** out_files,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_list_status_sync (
    IpcGitRepository *proxy,
    const gchar *arg_path,
    GVariant ** out_files,
    GCancellable *cancellable,
    GError **error);

void ipc_git_repository_call_switch_branch (
    IpcGitRepository *proxy,
    const gchar *arg_name,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_git_repository_call_switch_branch_finish (
    IpcGitRepository *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_switch_branch_sync (
    IpcGitRepository *proxy,
    const gchar *arg_name,
    GCancellable *cancellable,
    GError **error);

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

gboolean ipc_git_repository_call_create_change_monitor_finish (
    IpcGitRepository *proxy,
    gchar ** out_obj_path,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_create_change_monitor_sync (
    IpcGitRepository *proxy,
    const gchar *arg_path,
    gchar ** out_obj_path,
    GCancellable *cancellable,
    GError **error);

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

gboolean ipc_git_repository_call_blame_finish (
    IpcGitRepository *proxy,
    gchar ** out_obj_path,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_blame_sync (
    IpcGitRepository *proxy,
    const gchar *arg_path,
    gchar ** out_obj_path,
    GCancellable *cancellable,
    GError **error);

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

gboolean ipc_git_repository_call_stage_file_finish (
    IpcGitRepository *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_stage_file_sync (
    IpcGitRepository *proxy,
    const gchar *arg_path,
    GCancellable *cancellable,
    GError **error);

void ipc_git_repository_call_commit (
    IpcGitRepository *proxy,
    GVariant *arg_details,
    guint arg_flags,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_git_repository_call_commit_finish (
    IpcGitRepository *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_commit_sync (
    IpcGitRepository *proxy,
    GVariant *arg_details,
    guint arg_flags,
    GCancellable *cancellable,
    GError **error);

void ipc_git_repository_call_push (
    IpcGitRepository *proxy,
    const gchar *arg_remote,
    const gchar *const *arg_ref_specs,
    guint arg_flags,
    const gchar *arg_progress_path,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_git_repository_call_push_finish (
    IpcGitRepository *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_push_sync (
    IpcGitRepository *proxy,
    const gchar *arg_remote,
    const gchar *const *arg_ref_specs,
    guint arg_flags,
    const gchar *arg_progress_path,
    GCancellable *cancellable,
    GError **error);

void ipc_git_repository_call_load_config (
    IpcGitRepository *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_git_repository_call_load_config_finish (
    IpcGitRepository *proxy,
    gchar ** out_config_path,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_load_config_sync (
    IpcGitRepository *proxy,
    gchar ** out_config_path,
    GCancellable *cancellable,
    GError **error);

void ipc_git_repository_call_update_submodules (
    IpcGitRepository *proxy,
    gboolean arg_init,
    const gchar *arg_progress_path,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_git_repository_call_update_submodules_finish (
    IpcGitRepository *proxy,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_update_submodules_sync (
    IpcGitRepository *proxy,
    gboolean arg_init,
    const gchar *arg_progress_path,
    GCancellable *cancellable,
    GError **error);

void ipc_git_repository_call_get_remote_url (
    IpcGitRepository *proxy,
    const gchar *arg_remote_name,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean ipc_git_repository_call_get_remote_url_finish (
    IpcGitRepository *proxy,
    gchar ** out_url,
    GAsyncResult *res,
    GError **error);

gboolean ipc_git_repository_call_get_remote_url_sync (
    IpcGitRepository *proxy,
    const gchar *arg_remote_name,
    gchar ** out_url,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *ipc_git_repository_get_branch (IpcGitRepository *object);
gchar *ipc_git_repository_dup_branch (IpcGitRepository *object);
void ipc_git_repository_set_branch (IpcGitRepository *object, const gchar *value);

const gchar *ipc_git_repository_get_location (IpcGitRepository *object);
gchar *ipc_git_repository_dup_location (IpcGitRepository *object);
void ipc_git_repository_set_location (IpcGitRepository *object, const gchar *value);

const gchar *ipc_git_repository_get_workdir (IpcGitRepository *object);
gchar *ipc_git_repository_dup_workdir (IpcGitRepository *object);
void ipc_git_repository_set_workdir (IpcGitRepository *object, const gchar *value);


/* ---- */

#define IPC_TYPE_GIT_REPOSITORY_PROXY (ipc_git_repository_proxy_get_type ())
#define IPC_GIT_REPOSITORY_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), IPC_TYPE_GIT_REPOSITORY_PROXY, IpcGitRepositoryProxy))
#define IPC_GIT_REPOSITORY_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), IPC_TYPE_GIT_REPOSITORY_PROXY, IpcGitRepositoryProxyClass))
#define IPC_GIT_REPOSITORY_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), IPC_TYPE_GIT_REPOSITORY_PROXY, IpcGitRepositoryProxyClass))
#define IPC_IS_GIT_REPOSITORY_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), IPC_TYPE_GIT_REPOSITORY_PROXY))
#define IPC_IS_GIT_REPOSITORY_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), IPC_TYPE_GIT_REPOSITORY_PROXY))

typedef struct _IpcGitRepositoryProxy IpcGitRepositoryProxy;
typedef struct _IpcGitRepositoryProxyClass IpcGitRepositoryProxyClass;
typedef struct _IpcGitRepositoryProxyPrivate IpcGitRepositoryProxyPrivate;

struct _IpcGitRepositoryProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  IpcGitRepositoryProxyPrivate *priv;
};

struct _IpcGitRepositoryProxyClass
{
  GDBusProxyClass parent_class;
};

GType ipc_git_repository_proxy_get_type (void) G_GNUC_CONST;

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

void ipc_git_repository_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
IpcGitRepository *ipc_git_repository_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
IpcGitRepository *ipc_git_repository_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void ipc_git_repository_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
IpcGitRepository *ipc_git_repository_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
IpcGitRepository *ipc_git_repository_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define IPC_TYPE_GIT_REPOSITORY_SKELETON (ipc_git_repository_skeleton_get_type ())
#define IPC_GIT_REPOSITORY_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), IPC_TYPE_GIT_REPOSITORY_SKELETON, IpcGitRepositorySkeleton))
#define IPC_GIT_REPOSITORY_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), IPC_TYPE_GIT_REPOSITORY_SKELETON, IpcGitRepositorySkeletonClass))
#define IPC_GIT_REPOSITORY_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), IPC_TYPE_GIT_REPOSITORY_SKELETON, IpcGitRepositorySkeletonClass))
#define IPC_IS_GIT_REPOSITORY_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), IPC_TYPE_GIT_REPOSITORY_SKELETON))
#define IPC_IS_GIT_REPOSITORY_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), IPC_TYPE_GIT_REPOSITORY_SKELETON))

typedef struct _IpcGitRepositorySkeleton IpcGitRepositorySkeleton;
typedef struct _IpcGitRepositorySkeletonClass IpcGitRepositorySkeletonClass;
typedef struct _IpcGitRepositorySkeletonPrivate IpcGitRepositorySkeletonPrivate;

struct _IpcGitRepositorySkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  IpcGitRepositorySkeletonPrivate *priv;
};

struct _IpcGitRepositorySkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType ipc_git_repository_skeleton_get_type (void) G_GNUC_CONST;

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

IpcGitRepository *ipc_git_repository_skeleton_new (void);


G_END_DECLS

#endif /* __IPC_GIT_REPOSITORY_H__ */
