#ifndef SYNC_GROUP_H #define SYNC_GROUP_H #include #include G_BEGIN_DECLS #define SYNC_TYPE_GROUP sync_group_get_type() #define SYNC_GROUP(obj) \ (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ SYNC_TYPE_GROUP, SyncGroup)) #define SYNC_GROUP_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST ((klass), \ SYNC_TYPE_GROUP, SyncGroupClass)) #define SYNC_IS_GROUP(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ SYNC_TYPE_GROUP)) #define SYNC_IS_GROUP_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE ((klass), \ SYNC_TYPE_GROUP)) #define SYNC_GROUP_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), \ SYNC_TYPE_GROUP, SyncGroupClass)) typedef struct { GObject parent; } SyncGroup; typedef struct { GObjectClass parent_class; void (* started) (SyncGroup *group); void (* progress) (SyncGroup *group, gdouble progress); void (* conflict) (SyncGroup *group); void (* finished) (SyncGroup *group); void (* failed) (SyncGroup *group, const gchar *error); } SyncGroupClass; GType sync_group_get_type (void); typedef enum { USE_ITEM1, USE_ITEM2, ABORT, IGNORE, } SyncGroupConflictRes; #include "sync_item.h" SyncGroup * sync_group_new (void); SyncGroup * sync_group_new_with_items (SyncItem *item1, SyncItem *item2); void sync_group_set_item1 (SyncGroup *group, SyncItem *item1); void sync_group_set_item2 (SyncGroup *group, SyncItem *item2); void sync_group_set_namespace (SyncGroup *group, const gchar *namespace); SyncItem * sync_group_get_item1 (SyncGroup *group); SyncItem * sync_group_get_item2 (SyncGroup *group); OSyncGroup * sync_group_get_osync_group (SyncGroup *group); const gchar * sync_group_get_namespace (SyncGroup *group); gchar * sync_group_get_name (SyncGroup *group); gboolean sync_group_start (SyncGroup *group); gboolean sync_group_autostart (SyncGroup *group); void sync_group_resolve_conflict (SyncGroup *group, SyncGroupConflictRes res); gboolean sync_group_abort (SyncGroup *group); void sync_group_remove_item (SyncGroup *group, SyncItem *item); gboolean sync_group_delete (SyncGroup *group); gboolean sync_group_save (SyncGroup *group); G_END_DECLS #endif