/* common.h generated by valac, the Vala compiler, do not modify */


#ifndef __COMMON_H__
#define __COMMON_H__

#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <gconf/gconf-client.h>
#include <dbus/dbus-glib-lowlevel.h>
#include <dbus/dbus-glib.h>

G_BEGIN_DECLS


#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ())
#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend))
#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass))
#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND))
#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND))
#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass))

typedef struct _DejaDupBackend DejaDupBackend;
typedef struct _DejaDupBackendClass DejaDupBackendClass;
typedef struct _DejaDupBackendPrivate DejaDupBackendPrivate;

#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ())

#define DEJA_DUP_TYPE_BACKEND_FILE (deja_dup_backend_file_get_type ())
#define DEJA_DUP_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFile))
#define DEJA_DUP_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass))
#define DEJA_DUP_IS_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_FILE))
#define DEJA_DUP_IS_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_FILE))
#define DEJA_DUP_BACKEND_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass))

typedef struct _DejaDupBackendFile DejaDupBackendFile;
typedef struct _DejaDupBackendFileClass DejaDupBackendFileClass;
typedef struct _DejaDupBackendFilePrivate DejaDupBackendFilePrivate;

#define DEJA_DUP_TYPE_BACKEND_S3 (deja_dup_backend_s3_get_type ())
#define DEJA_DUP_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3))
#define DEJA_DUP_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class))
#define DEJA_DUP_IS_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_S3))
#define DEJA_DUP_IS_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_S3))
#define DEJA_DUP_BACKEND_S3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class))

typedef struct _DejaDupBackendS3 DejaDupBackendS3;
typedef struct _DejaDupBackendS3Class DejaDupBackendS3Class;
typedef struct _DejaDupBackendS3Private DejaDupBackendS3Private;

#define DEJA_DUP_TYPE_DUPLICITY (deja_dup_duplicity_get_type ())
#define DEJA_DUP_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicity))
#define DEJA_DUP_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass))
#define DEJA_DUP_IS_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY))
#define DEJA_DUP_IS_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY))
#define DEJA_DUP_DUPLICITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass))

typedef struct _DejaDupDuplicity DejaDupDuplicity;
typedef struct _DejaDupDuplicityClass DejaDupDuplicityClass;
typedef struct _DejaDupDuplicityPrivate DejaDupDuplicityPrivate;

#define DEJA_DUP_DUPLICITY_TYPE_STATE (deja_dup_duplicity_state_get_type ())

#define DEJA_DUP_TYPE_DUPLICITY_INFO (deja_dup_duplicity_info_get_type ())
#define DEJA_DUP_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfo))
#define DEJA_DUP_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass))
#define DEJA_DUP_IS_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO))
#define DEJA_DUP_IS_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO))
#define DEJA_DUP_DUPLICITY_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass))

typedef struct _DejaDupDuplicityInfo DejaDupDuplicityInfo;
typedef struct _DejaDupDuplicityInfoClass DejaDupDuplicityInfoClass;
typedef struct _DejaDupDuplicityInfoPrivate DejaDupDuplicityInfoPrivate;

#define DEJA_DUP_TYPE_DUPLICITY_INSTANCE (deja_dup_duplicity_instance_get_type ())
#define DEJA_DUP_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstance))
#define DEJA_DUP_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass))
#define DEJA_DUP_IS_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE))
#define DEJA_DUP_IS_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE))
#define DEJA_DUP_DUPLICITY_INSTANCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass))

typedef struct _DejaDupDuplicityInstance DejaDupDuplicityInstance;
typedef struct _DejaDupDuplicityInstanceClass DejaDupDuplicityInstanceClass;
typedef struct _DejaDupDuplicityInstancePrivate DejaDupDuplicityInstancePrivate;

#define DEJA_DUP_TYPE_NETWORK_MANAGER (deja_dup_network_manager_get_type ())
#define DEJA_DUP_NETWORK_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_NETWORK_MANAGER, DejaDupNetworkManager))
#define DEJA_DUP_NETWORK_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_NETWORK_MANAGER, DejaDupNetworkManagerClass))
#define DEJA_DUP_IS_NETWORK_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_NETWORK_MANAGER))
#define DEJA_DUP_IS_NETWORK_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_NETWORK_MANAGER))
#define DEJA_DUP_NETWORK_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_NETWORK_MANAGER, DejaDupNetworkManagerClass))

typedef struct _DejaDupNetworkManager DejaDupNetworkManager;
typedef struct _DejaDupNetworkManagerClass DejaDupNetworkManagerClass;
typedef struct _DejaDupNetworkManagerPrivate DejaDupNetworkManagerPrivate;

#define DEJA_DUP_TYPE_OPERATION (deja_dup_operation_get_type ())
#define DEJA_DUP_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperation))
#define DEJA_DUP_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass))
#define DEJA_DUP_IS_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION))
#define DEJA_DUP_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION))
#define DEJA_DUP_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass))

typedef struct _DejaDupOperation DejaDupOperation;
typedef struct _DejaDupOperationClass DejaDupOperationClass;
typedef struct _DejaDupOperationPrivate DejaDupOperationPrivate;

#define DEJA_DUP_OPERATION_TYPE_STATE (deja_dup_operation_state_get_type ())
#define DEJA_DUP_OPERATION_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_OPERATION_TYPE_STATE, DejaDupOperationState))
#define DEJA_DUP_OPERATION_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_OPERATION_TYPE_STATE, DejaDupOperationStateClass))
#define DEJA_DUP_OPERATION_IS_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_OPERATION_TYPE_STATE))
#define DEJA_DUP_OPERATION_IS_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_OPERATION_TYPE_STATE))
#define DEJA_DUP_OPERATION_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_OPERATION_TYPE_STATE, DejaDupOperationStateClass))

typedef struct _DejaDupOperationState DejaDupOperationState;
typedef struct _DejaDupOperationStateClass DejaDupOperationStateClass;
typedef struct _DejaDupOperationStatePrivate DejaDupOperationStatePrivate;

#define DEJA_DUP_TYPE_OPERATION_BACKUP (deja_dup_operation_backup_get_type ())
#define DEJA_DUP_OPERATION_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackup))
#define DEJA_DUP_OPERATION_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackupClass))
#define DEJA_DUP_IS_OPERATION_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP))
#define DEJA_DUP_IS_OPERATION_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_BACKUP))
#define DEJA_DUP_OPERATION_BACKUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackupClass))

typedef struct _DejaDupOperationBackup DejaDupOperationBackup;
typedef struct _DejaDupOperationBackupClass DejaDupOperationBackupClass;
typedef struct _DejaDupOperationBackupPrivate DejaDupOperationBackupPrivate;

#define DEJA_DUP_TYPE_OPERATION_RESTORE (deja_dup_operation_restore_get_type ())
#define DEJA_DUP_OPERATION_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestore))
#define DEJA_DUP_OPERATION_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestoreClass))
#define DEJA_DUP_IS_OPERATION_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE))
#define DEJA_DUP_IS_OPERATION_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_RESTORE))
#define DEJA_DUP_OPERATION_RESTORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestoreClass))

typedef struct _DejaDupOperationRestore DejaDupOperationRestore;
typedef struct _DejaDupOperationRestoreClass DejaDupOperationRestoreClass;
typedef struct _DejaDupOperationRestorePrivate DejaDupOperationRestorePrivate;

#define DEJA_DUP_TYPE_OPERATION_STATUS (deja_dup_operation_status_get_type ())
#define DEJA_DUP_OPERATION_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatus))
#define DEJA_DUP_OPERATION_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatusClass))
#define DEJA_DUP_IS_OPERATION_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_STATUS))
#define DEJA_DUP_IS_OPERATION_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_STATUS))
#define DEJA_DUP_OPERATION_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatusClass))

typedef struct _DejaDupOperationStatus DejaDupOperationStatus;
typedef struct _DejaDupOperationStatusClass DejaDupOperationStatusClass;
typedef struct _DejaDupOperationStatusPrivate DejaDupOperationStatusPrivate;

#define DEJA_DUP_TYPE_RECURSIVE_OP (deja_dup_recursive_op_get_type ())
#define DEJA_DUP_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOp))
#define DEJA_DUP_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass))
#define DEJA_DUP_IS_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_OP))
#define DEJA_DUP_IS_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_OP))
#define DEJA_DUP_RECURSIVE_OP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass))

typedef struct _DejaDupRecursiveOp DejaDupRecursiveOp;
typedef struct _DejaDupRecursiveOpClass DejaDupRecursiveOpClass;
typedef struct _DejaDupRecursiveOpPrivate DejaDupRecursiveOpPrivate;

#define DEJA_DUP_TYPE_RECURSIVE_DELETE (deja_dup_recursive_delete_get_type ())
#define DEJA_DUP_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDelete))
#define DEJA_DUP_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass))
#define DEJA_DUP_IS_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE))
#define DEJA_DUP_IS_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE))
#define DEJA_DUP_RECURSIVE_DELETE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass))

typedef struct _DejaDupRecursiveDelete DejaDupRecursiveDelete;
typedef struct _DejaDupRecursiveDeleteClass DejaDupRecursiveDeleteClass;
typedef struct _DejaDupRecursiveDeletePrivate DejaDupRecursiveDeletePrivate;

#define DEJA_DUP_TYPE_RECURSIVE_MOVE (deja_dup_recursive_move_get_type ())
#define DEJA_DUP_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMove))
#define DEJA_DUP_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass))
#define DEJA_DUP_IS_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE))
#define DEJA_DUP_IS_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE))
#define DEJA_DUP_RECURSIVE_MOVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass))

typedef struct _DejaDupRecursiveMove DejaDupRecursiveMove;
typedef struct _DejaDupRecursiveMoveClass DejaDupRecursiveMoveClass;
typedef struct _DejaDupRecursiveMovePrivate DejaDupRecursiveMovePrivate;

typedef enum  {
	DEJA_DUP_OPERATION_MODE_INVALID,
	DEJA_DUP_OPERATION_MODE_BACKUP,
	DEJA_DUP_OPERATION_MODE_RESTORE,
	DEJA_DUP_OPERATION_MODE_STATUS,
	DEJA_DUP_OPERATION_MODE_LIST
} DejaDupOperationMode;

struct _DejaDupBackend {
	GObject parent_instance;
	DejaDupBackendPrivate * priv;
};

struct _DejaDupBackendClass {
	GObjectClass parent_class;
	gboolean (*is_native) (DejaDupBackend* self);
	GIcon* (*get_icon) (DejaDupBackend* self);
	char* (*get_location) (DejaDupBackend* self, GError** error);
	char* (*get_location_pretty) (DejaDupBackend* self, GError** error);
	gboolean (*is_ready) (DejaDupBackend* self, char** when);
	void (*get_envp) (DejaDupBackend* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*get_envp_finish) (DejaDupBackend* self, GAsyncResult* _res_, GError** error);
	void (*add_argv) (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv);
	DejaDupBackend* (*clone) (DejaDupBackend* self);
};

struct _DejaDupBackendFile {
	DejaDupBackend parent_instance;
	DejaDupBackendFilePrivate * priv;
};

struct _DejaDupBackendFileClass {
	DejaDupBackendClass parent_class;
};

struct _DejaDupBackendS3 {
	DejaDupBackend parent_instance;
	DejaDupBackendS3Private * priv;
};

struct _DejaDupBackendS3Class {
	DejaDupBackendClass parent_class;
};

struct _DejaDupDuplicity {
	GObject parent_instance;
	DejaDupDuplicityPrivate * priv;
	GList* includes;
	GList* excludes;
};

struct _DejaDupDuplicityClass {
	GObjectClass parent_class;
	void (*start) (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp);
	void (*process_error) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in);
	void (*process_info) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text);
	void (*process_warning) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text);
};

typedef enum  {
	DEJA_DUP_DUPLICITY_STATE_NORMAL,
	DEJA_DUP_DUPLICITY_STATE_DRY_RUN,
	DEJA_DUP_DUPLICITY_STATE_STATUS,
	DEJA_DUP_DUPLICITY_STATE_CHECK_CONTENTS,
	DEJA_DUP_DUPLICITY_STATE_CLEANUP,
	DEJA_DUP_DUPLICITY_STATE_DELETE
} DejaDupDuplicityState;

struct _DejaDupDuplicityInfo {
	GObject parent_instance;
	DejaDupDuplicityInfoPrivate * priv;
};

struct _DejaDupDuplicityInfoClass {
	GObjectClass parent_class;
};

struct _DejaDupDuplicityInstance {
	GObject parent_instance;
	DejaDupDuplicityInstancePrivate * priv;
};

struct _DejaDupDuplicityInstanceClass {
	GObjectClass parent_class;
	void (*start) (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, gboolean as_root, GError** error);
};

struct _DejaDupNetworkManager {
	GObject parent_instance;
	DejaDupNetworkManagerPrivate * priv;
};

struct _DejaDupNetworkManagerClass {
	GObjectClass parent_class;
};

struct _DejaDupOperation {
	GObject parent_instance;
	DejaDupOperationPrivate * priv;
	DejaDupDuplicity* dup;
	char* passphrase;
};

struct _DejaDupOperationClass {
	GObjectClass parent_class;
	void (*start) (DejaDupOperation* self, GError** error);
	void (*connect_to_dup) (DejaDupOperation* self);
	void (*operation_finished) (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled);
	GList* (*make_argv) (DejaDupOperation* self, GError** error);
};

struct _DejaDupOperationState {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DejaDupOperationStatePrivate * priv;
	DejaDupBackend* backend;
	char* passphrase;
};

struct _DejaDupOperationStateClass {
	GTypeClass parent_class;
	void (*finalize) (DejaDupOperationState *self);
};

typedef enum  {
	DEJA_DUP_BACKUP_ERROR_BAD_CONFIG
} DejaDupBackupError;
#define DEJA_DUP_BACKUP_ERROR deja_dup_backup_error_quark ()
struct _DejaDupOperationBackup {
	DejaDupOperation parent_instance;
	DejaDupOperationBackupPrivate * priv;
};

struct _DejaDupOperationBackupClass {
	DejaDupOperationClass parent_class;
};

struct _DejaDupOperationRestore {
	DejaDupOperation parent_instance;
	DejaDupOperationRestorePrivate * priv;
};

struct _DejaDupOperationRestoreClass {
	DejaDupOperationClass parent_class;
};

struct _DejaDupOperationStatus {
	DejaDupOperation parent_instance;
	DejaDupOperationStatusPrivate * priv;
};

struct _DejaDupOperationStatusClass {
	DejaDupOperationClass parent_class;
};

struct _DejaDupRecursiveOp {
	GObject parent_instance;
	DejaDupRecursiveOpPrivate * priv;
	GFileType src_type;
	GFileType dst_type;
};

struct _DejaDupRecursiveOpClass {
	GObjectClass parent_class;
	void (*handle_file) (DejaDupRecursiveOp* self);
	void (*handle_dir) (DejaDupRecursiveOp* self);
	void (*finish_dir) (DejaDupRecursiveOp* self);
	DejaDupRecursiveOp* (*clone_for_info) (DejaDupRecursiveOp* self, GFileInfo* info);
};

struct _DejaDupRecursiveDelete {
	DejaDupRecursiveOp parent_instance;
	DejaDupRecursiveDeletePrivate * priv;
};

struct _DejaDupRecursiveDeleteClass {
	DejaDupRecursiveOpClass parent_class;
};

struct _DejaDupRecursiveMove {
	DejaDupRecursiveOp parent_instance;
	DejaDupRecursiveMovePrivate * priv;
};

struct _DejaDupRecursiveMoveClass {
	DejaDupRecursiveOpClass parent_class;
};


GType deja_dup_backend_get_type (void);
GType deja_dup_operation_mode_get_type (void);
gboolean deja_dup_backend_is_native (DejaDupBackend* self);
GIcon* deja_dup_backend_get_icon (DejaDupBackend* self);
char* deja_dup_backend_get_location (DejaDupBackend* self, GError** error);
char* deja_dup_backend_get_location_pretty (DejaDupBackend* self, GError** error);
gboolean deja_dup_backend_is_ready (DejaDupBackend* self, char** when);
void deja_dup_backend_get_envp (DejaDupBackend* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void deja_dup_backend_get_envp_finish (DejaDupBackend* self, GAsyncResult* _res_, GError** error);
void deja_dup_backend_add_argv (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv);
DejaDupBackend* deja_dup_backend_clone (DejaDupBackend* self);
DejaDupBackend* deja_dup_backend_get_default (GError** error);
DejaDupBackend* deja_dup_backend_construct (GType object_type);
GMountOperation* deja_dup_backend_get_mount_op (DejaDupBackend* self);
void deja_dup_backend_set_mount_op (DejaDupBackend* self, GMountOperation* value);
#define DEJA_DUP_FILE_ROOT_KEY "/apps/deja-dup/file"
#define DEJA_DUP_FILE_TYPE_KEY "/apps/deja-dup/file/type"
#define DEJA_DUP_FILE_PATH_KEY "/apps/deja-dup/file/path"
#define DEJA_DUP_FILE_RELPATH_KEY "/apps/deja-dup/file/relpath"
#define DEJA_DUP_FILE_UUID_KEY "/apps/deja-dup/file/uuid"
#define DEJA_DUP_FILE_NAME_KEY "/apps/deja-dup/file/name"
#define DEJA_DUP_FILE_SHORT_NAME_KEY "/apps/deja-dup/file/short_name"
#define DEJA_DUP_FILE_ICON_KEY "/apps/deja-dup/file/icon"
GType deja_dup_backend_file_get_type (void);
void deja_dup_backend_file_check_for_volume_info (GFile* file, GAsyncReadyCallback _callback_, gpointer _user_data_);
void deja_dup_backend_file_check_for_volume_info_finish (GAsyncResult* _res_, GError** error);
DejaDupBackendFile* deja_dup_backend_file_new (void);
DejaDupBackendFile* deja_dup_backend_file_construct (GType object_type);
#define DEJA_DUP_S3_ROOT_KEY "/apps/deja-dup/s3"
#define DEJA_DUP_S3_ID_KEY "/apps/deja-dup/s3/id"
#define DEJA_DUP_S3_BUCKET_KEY "/apps/deja-dup/s3/bucket"
#define DEJA_DUP_S3_FOLDER_KEY "/apps/deja-dup/s3/folder"
GType deja_dup_backend_s3_get_type (void);
gboolean deja_dup_backend_s3_bump_bucket (DejaDupBackendS3* self);
DejaDupBackendS3* deja_dup_backend_s3_new (void);
DejaDupBackendS3* deja_dup_backend_s3_construct (GType object_type);
#define DEJA_DUP_GCONF_DIR "/apps/deja-dup"
#define DEJA_DUP_INCLUDE_LIST_KEY "/apps/deja-dup/include-list"
#define DEJA_DUP_EXCLUDE_LIST_KEY "/apps/deja-dup/exclude-list"
#define DEJA_DUP_BACKEND_KEY "/apps/deja-dup/backend"
#define DEJA_DUP_ROOT_PROMPT_KEY "/apps/deja-dup/root-prompt"
#define DEJA_DUP_ENCRYPT_KEY "/apps/deja-dup/encrypt"
#define DEJA_DUP_LAST_RUN_KEY "/apps/deja-dup/last-run"
#define DEJA_DUP_PERIODIC_KEY "/apps/deja-dup/periodic"
#define DEJA_DUP_PERIODIC_PERIOD_KEY "/apps/deja-dup/periodic-period"
#define DEJA_DUP_DELETE_AFTER_KEY "/apps/deja-dup/delete-after"
void deja_dup_update_last_run_timestamp (GError** error);
char* deja_dup_get_trash_path (void);
GFile* deja_dup_parse_dir (const char* dir);
GFile** deja_dup_parse_dir_list (GSList* dirs, int* result_length1);
gboolean deja_dup_test_bus_claimed (const char* busname);
gboolean deja_dup_set_bus_claimed (const char* busname, gboolean claim);
GConfClient* deja_dup_get_gconf_client (void);
void deja_dup_initialize (void);
char* deja_dup_get_file_desc (GFile* file);
char* deja_dup_get_location_desc (void);
gint deja_dup_get_full_backup_threshold (void);
void deja_dup_get_full_backup_threshold_date (GDate* result);
GType deja_dup_duplicity_get_type (void);
GType deja_dup_duplicity_state_get_type (void);
#define DEJA_DUP_DUPLICITY_ERROR_HOSTNAME_CHANGED 3
#define DEJA_DUP_DUPLICITY_ERROR_RESTORE_DIR_NOT_FOUND 19
#define DEJA_DUP_DUPLICITY_ERROR_EXCEPTION 30
#define DEJA_DUP_DUPLICITY_ERROR_GPG 31
#define DEJA_DUP_DUPLICITY_INFO_PROGRESS 2
#define DEJA_DUP_DUPLICITY_INFO_COLLECTION_STATUS 3
#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_NEW 4
#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_CHANGED 5
#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_DELETED 6
#define DEJA_DUP_DUPLICITY_INFO_PATCH_FILE_WRITING 7
#define DEJA_DUP_DUPLICITY_INFO_PATCH_FILE_PATCHING 8
#define DEJA_DUP_DUPLICITY_INFO_FILE_STAT 10
#define DEJA_DUP_DUPLICITY_INFO_SYNCHRONOUS_UPLOAD_BEGIN 11
#define DEJA_DUP_DUPLICITY_INFO_ASYNCHRONOUS_UPLOAD_BEGIN 12
#define DEJA_DUP_DUPLICITY_INFO_SYNCHRONOUS_UPLOAD_DONE 13
#define DEJA_DUP_DUPLICITY_INFO_ASYNCHRONOUS_UPLOAD_DONE 14
#define DEJA_DUP_DUPLICITY_WARNING_ORPHANED_SIG 2
#define DEJA_DUP_DUPLICITY_WARNING_UNNECESSARY_SIG 3
#define DEJA_DUP_DUPLICITY_WARNING_UNMATCHED_SIG 4
#define DEJA_DUP_DUPLICITY_WARNING_INCOMPLETE_BACKUP 5
#define DEJA_DUP_DUPLICITY_WARNING_ORPHANED_BACKUP 6
DejaDupDuplicity* deja_dup_duplicity_new (DejaDupOperationMode mode);
DejaDupDuplicity* deja_dup_duplicity_construct (GType object_type, DejaDupOperationMode mode);
void deja_dup_duplicity_start (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp);
void deja_dup_duplicity_cancel (DejaDupDuplicity* self);
void deja_dup_duplicity_stop (DejaDupDuplicity* self);
void deja_dup_duplicity_pause (DejaDupDuplicity* self);
void deja_dup_duplicity_resume (DejaDupDuplicity* self);
void deja_dup_duplicity_process_error (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in);
void deja_dup_duplicity_process_info (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text);
void deja_dup_duplicity_process_warning (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text);
DejaDupOperationMode deja_dup_duplicity_get_original_mode (DejaDupDuplicity* self);
DejaDupOperationMode deja_dup_duplicity_get_mode (DejaDupDuplicity* self);
gboolean deja_dup_duplicity_get_error_issued (DejaDupDuplicity* self);
gboolean deja_dup_duplicity_get_was_stopped (DejaDupDuplicity* self);
GFile* deja_dup_duplicity_get_local (DejaDupDuplicity* self);
void deja_dup_duplicity_set_local (DejaDupDuplicity* self, GFile* value);
DejaDupBackend* deja_dup_duplicity_get_backend (DejaDupDuplicity* self);
void deja_dup_duplicity_set_backend (DejaDupDuplicity* self, DejaDupBackend* value);
GList* deja_dup_duplicity_get_restore_files (DejaDupDuplicity* self);
void deja_dup_duplicity_set_restore_files (DejaDupDuplicity* self, GList* value);
DejaDupDuplicityState deja_dup_duplicity_get_state (DejaDupDuplicity* self);
void deja_dup_duplicity_set_state (DejaDupDuplicity* self, DejaDupDuplicityState value);
GType deja_dup_duplicity_info_get_type (void);
#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MAJOR 0
#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MINOR 5
#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MICRO 3
DejaDupDuplicityInfo* deja_dup_duplicity_info_get_default (void);
gboolean deja_dup_duplicity_info_check_duplicity_version (DejaDupDuplicityInfo* self, char** header, char** msg);
DejaDupDuplicityInfo* deja_dup_duplicity_info_new (void);
DejaDupDuplicityInfo* deja_dup_duplicity_info_construct (GType object_type);
gboolean deja_dup_duplicity_info_get_has_broken_cleanup (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_has_backup_progress (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_has_restore_progress (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_has_collection_status (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_new_time_format (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_can_read_short_filenames (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_has_native_gio (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_can_resume (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_has_rename_arg (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_has_fixed_log_file (DejaDupDuplicityInfo* self);
gboolean deja_dup_duplicity_info_get_use_empty_gpg_options (DejaDupDuplicityInfo* self);
GType deja_dup_duplicity_instance_get_type (void);
void deja_dup_duplicity_instance_start (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, gboolean as_root, GError** error);
gboolean deja_dup_duplicity_instance_is_started (DejaDupDuplicityInstance* self);
void deja_dup_duplicity_instance_cancel (DejaDupDuplicityInstance* self);
void deja_dup_duplicity_instance_pause (DejaDupDuplicityInstance* self);
void deja_dup_duplicity_instance_resume (DejaDupDuplicityInstance* self);
DejaDupDuplicityInstance* deja_dup_duplicity_instance_new (void);
DejaDupDuplicityInstance* deja_dup_duplicity_instance_construct (GType object_type);
gboolean deja_dup_duplicity_instance_get_verbose (DejaDupDuplicityInstance* self);
GType deja_dup_network_manager_get_type (void);
DejaDupNetworkManager* deja_dup_network_manager_get (void);
DejaDupNetworkManager* deja_dup_network_manager_new (void);
DejaDupNetworkManager* deja_dup_network_manager_construct (GType object_type);
void deja_dup_network_manager_nm_state_changed (DejaDupNetworkManager* self, DBusGProxy* obj, guint32 new_state);
gboolean deja_dup_network_manager_get_connected (DejaDupNetworkManager* self);
void deja_dup_network_manager_set_connected (DejaDupNetworkManager* self, gboolean value);
GType deja_dup_operation_get_type (void);
char* deja_dup_operation_mode_to_string (DejaDupOperationMode mode);
gpointer deja_dup_operation_state_ref (gpointer instance);
void deja_dup_operation_state_unref (gpointer instance);
GParamSpec* deja_dup_operation_param_spec_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void deja_dup_operation_value_set_state (GValue* value, gpointer v_object);
void deja_dup_operation_value_take_state (GValue* value, gpointer v_object);
gpointer deja_dup_operation_value_get_state (const GValue* value);
GType deja_dup_operation_state_get_type (void);
DejaDupOperationState* deja_dup_operation_get_state (DejaDupOperation* self);
void deja_dup_operation_set_state (DejaDupOperation* self, DejaDupOperationState* state);
void deja_dup_operation_start (DejaDupOperation* self, GError** error);
void deja_dup_operation_cancel (DejaDupOperation* self);
void deja_dup_operation_stop (DejaDupOperation* self);
void deja_dup_operation_connect_to_dup (DejaDupOperation* self);
void deja_dup_operation_continue_with_passphrase (DejaDupOperation* self, const char* passphrase);
void deja_dup_operation_operation_finished (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled);
GList* deja_dup_operation_make_argv (DejaDupOperation* self, GError** error);
DejaDupOperation* deja_dup_operation_construct (GType object_type);
guint deja_dup_operation_get_xid (DejaDupOperation* self);
gboolean deja_dup_operation_get_needs_password (DejaDupOperation* self);
DejaDupBackend* deja_dup_operation_get_backend (DejaDupOperation* self);
DejaDupOperationMode deja_dup_operation_get_mode (DejaDupOperation* self);
DejaDupOperationState* deja_dup_operation_state_new (void);
DejaDupOperationState* deja_dup_operation_state_construct (GType object_type);
GQuark deja_dup_backup_error_quark (void);
GType deja_dup_operation_backup_get_type (void);
DejaDupOperationBackup* deja_dup_operation_backup_new (guint xid);
DejaDupOperationBackup* deja_dup_operation_backup_construct (GType object_type, guint xid);
GType deja_dup_operation_restore_get_type (void);
DejaDupOperationRestore* deja_dup_operation_restore_new (const char* dest_in, const char* time_in, GList* files_in, guint xid);
DejaDupOperationRestore* deja_dup_operation_restore_construct (GType object_type, const char* dest_in, const char* time_in, GList* files_in, guint xid);
const char* deja_dup_operation_restore_get_dest (DejaDupOperationRestore* self);
const char* deja_dup_operation_restore_get_time (DejaDupOperationRestore* self);
GList* deja_dup_operation_restore_get_restore_files (DejaDupOperationRestore* self);
GType deja_dup_operation_status_get_type (void);
DejaDupOperationStatus* deja_dup_operation_status_new (guint xid);
DejaDupOperationStatus* deja_dup_operation_status_construct (GType object_type, guint xid);
GType deja_dup_recursive_op_get_type (void);
GType deja_dup_recursive_delete_get_type (void);
DejaDupRecursiveDelete* deja_dup_recursive_delete_new (GFile* source);
DejaDupRecursiveDelete* deja_dup_recursive_delete_construct (GType object_type, GFile* source);
GType deja_dup_recursive_move_get_type (void);
DejaDupRecursiveMove* deja_dup_recursive_move_new (GFile* source, GFile* dest);
DejaDupRecursiveMove* deja_dup_recursive_move_construct (GType object_type, GFile* source, GFile* dest);
void deja_dup_recursive_op_handle_file (DejaDupRecursiveOp* self);
void deja_dup_recursive_op_handle_dir (DejaDupRecursiveOp* self);
void deja_dup_recursive_op_finish_dir (DejaDupRecursiveOp* self);
DejaDupRecursiveOp* deja_dup_recursive_op_clone_for_info (DejaDupRecursiveOp* self, GFileInfo* info);
void deja_dup_recursive_op_start (DejaDupRecursiveOp* self);
void deja_dup_recursive_op_start_async (DejaDupRecursiveOp* self);
DejaDupRecursiveOp* deja_dup_recursive_op_construct (GType object_type);
GFile* deja_dup_recursive_op_get_src (DejaDupRecursiveOp* self);
GFile* deja_dup_recursive_op_get_dst (DejaDupRecursiveOp* self);


G_END_DECLS

#endif
