summaryrefslogtreecommitdiffstats
path: root/sync/src/sync_item.h
blob: 87cdfbc9f72bbc52d1a7dddf9ae75c2d36810473 (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
68
69
70
71
72
73
74
75
#ifndef SYNC_ITEM_H
#define SYNC_ITEM_H

#include <glib.h>
#include <glib-object.h>
#include <opensync/opensync.h>

G_BEGIN_DECLS

#define SYNC_TYPE_ITEM sync_item_get_type()

#define SYNC_ITEM(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
  SYNC_TYPE_ITEM, SyncItem))

#define SYNC_ITEM_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_CAST ((klass), \
  SYNC_TYPE_ITEM, SyncItemClass))

#define SYNC_IS_ITEM(obj) \
  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
  SYNC_TYPE_ITEM))

#define SYNC_IS_ITEM_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
  SYNC_TYPE_ITEM))

#define SYNC_ITEM_GET_CLASS(obj) \
  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
  SYNC_TYPE_ITEM, SyncItemClass))

typedef struct {
  GObject parent;
} SyncItem;

typedef struct {
  GObjectClass parent_class;
} SyncItemClass;

GType sync_item_get_type (void);

#include "sync_group.h"

typedef OSyncMember *	(*SyncItemMemberFunc)	(SyncItem *item,
						 SyncGroup *group);
typedef void 		(*SyncItemDataFreeFunc)	(gpointer data);

SyncItem *	sync_item_new		(const gchar *		name,
					 const gchar *		adr,
					 SyncItemMemberFunc	member_func);
const gchar *	sync_item_get_name	(SyncItem *		item);
const gchar *	sync_item_get_adr	(SyncItem *		item);
gpointer	sync_item_get_data	(SyncItem *		item);

SyncItemDataFreeFunc	sync_item_get_data_free_func	(SyncItem *	item);
SyncItemMemberFunc	sync_item_get_member_func	(SyncItem *	item);

void	sync_item_set_name		(SyncItem *		item,
					 const gchar *		name);
void	sync_item_set_adr		(SyncItem *		item,
					 const gchar *		adr);
void	sync_item_set_data		(SyncItem *		item,
					 gpointer 		data);
void	sync_item_set_data_free_func	(SyncItem *		item,
					 SyncItemDataFreeFunc	data_free_func);
void	sync_item_set_member_func	(SyncItem *		item,
					 SyncItemMemberFunc	member_func);

OSyncMember *	sync_item_create_member	(SyncItem *		item,
					 SyncGroup *		group);

G_END_DECLS

#endif