summaryrefslogtreecommitdiffstats
path: root/sync/src/sync_collection.h
blob: 8550baf53f43580554f71f62e67222b12fe52801 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef SYNC_COLLECTION_H
#define SYNC_COLLECTION_H

#include <glib-object.h>
#include "sync_group.h"

G_BEGIN_DECLS

#define SYNC_TYPE_COLLECTION sync_collection_get_type()

#define SYNC_COLLECTION(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
  SYNC_TYPE_COLLECTION, SyncCollection))

#define SYNC_COLLECTION_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_CAST ((klass), \
  SYNC_TYPE_COLLECTION, SyncCollectionClass))

#define SYNC_IS_COLLECTION(obj) \
  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
  SYNC_TYPE_COLLECTION))

#define SYNC_IS_COLLECTION_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
  SYNC_TYPE_COLLECTION))

#define SYNC_COLLECTION_GET_CLASS(obj) \
  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
  SYNC_TYPE_COLLECTION, SyncCollectionClass))

typedef struct {
  GObject parent;
} SyncCollection;

typedef struct {
  GObjectClass parent_class;

  void (* started)	(SyncCollection *collection);
  void (* progress)	(SyncCollection *collection, gdouble progress);
  void (* conflict)	(SyncCollection *collection, SyncGroup *group);
  void (* finished)	(SyncCollection *collection);
  void (* failed)	(SyncCollection *collection);
} SyncCollectionClass;

GType sync_collection_get_type (void);

SyncCollection* sync_collection_new (void);
						 
void 		sync_collection_add_group	(SyncCollection *collection,
						 SyncGroup *group);
void		sync_collection_set_namespace	(SyncCollection *collection,
						 const gchar *namespace);
GList *		sync_collection_get_groups	(SyncCollection *collection);
gboolean	sync_collection_start		(SyncCollection *collection);
void		sync_collection_resolve_conflict(SyncCollection *collection,
						 SyncGroupConflictRes res);
void		sync_collection_abort		(SyncCollection *collection);
void		sync_collection_remove_group	(SyncCollection *collection,
						 SyncGroup *group);
void		sync_collection_remove_all	(SyncCollection *collection);
gboolean	sync_collection_delete		(SyncCollection *collection);
gboolean	sync_collection_save		(SyncCollection *collection);

G_END_DECLS

#endif