summaryrefslogtreecommitdiffstats
path: root/debian/opensync/opensync-0.22/opensync/opensync_member_internals.h
blob: 7b48796d5853c54939e82610c69f00951a1ad4fb (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

/*! @brief A member of a group which represent a single device */
struct OSyncMember {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
	long long int id;
	char *configdir;
	char *configdata;
	int configsize;
	OSyncPlugin *plugin;
	OSyncMemberFunctions *memberfunctions;
	OSyncGroup *group;
	
	void *enginedata;
	void *plugindata;
	
	/* List of sinks, by format
	 *
	 * Note: only use this field after calling osync_member_require_sink_info()
	 *
	 * @todo Add osync_member_get_format_sinks() function
	 * @todo Review users of format_sinks to check if they may
	 *       possibly fail silently if sink information isn't available
	 */
	GList *format_sinks;

	/* List of sinks, by objtype
	 *
	 * Note: only use this field using osync_member_get_objtype_sinks(), or
	 *       after calling osync_member_require_sink_info()
	 */
	GList *objtype_sinks;


	char *pluginname;
	char *name;
	
	//For the filters
	GList *accepted_objtypes;
	GList *filters;

	char *extension;
	
	void *loop;
#endif
};

OSyncObjTypeSink *osync_member_find_objtype_sink(OSyncMember *member, const char *objtypestr);
void osync_member_select_format(OSyncMember *member, OSyncObjTypeSink *objsink);
osync_bool osync_member_instance_default_plugin(OSyncMember *member, OSyncError **error);
OSyncObjFormatSink *osync_member_make_random_data(OSyncMember *member, OSyncChange *change, const char *objtypename);
osync_bool osync_member_get_objtype_sinks(OSyncMember *member, GList **list_ptr, OSyncError **error);
osync_bool osync_member_require_sink_info(OSyncMember *member, OSyncError **error);

void osync_member_write_sink_info(OSyncMember *member, OSyncMessage *message);
void osync_member_read_sink_info(OSyncMember *member, OSyncMessage *message);
void osync_member_read_sink_info_full(OSyncMember *member, OSyncMessage *message);