1 typedef struct
{} GroupEnv
;
5 GroupEnv
*env
= osync_group_env_new
(&err);
6 if
(raise_exception_on_error
(err
))
13 osync_group_env_free
(self
);
16 void load_groups
(const char
*path
= NULL) {
18 bool ret
= osync_group_env_load_groups
(self
, path
, &err);
19 if
(!raise_exception_on_error
(err
) && !ret)
20 wrapper_exception
("osync_group_env_load_groups failed but did not set error code");
23 Group
*find_group
(const char
*name
) {
24 Group
*group
= osync_group_env_find_group
(self
, name
);
26 osync_group_ref
(group
);
30 void add_group
(Group
*group
) {
32 bool ret
= osync_group_env_add_group
(self
, group
, &err);
33 if
(!raise_exception_on_error
(err
) && !ret)
34 wrapper_exception
("osync_group_env_add_group failed but did not set error code");
37 void remove_group
(Group
*group
) {
38 osync_group_env_remove_group
(self
, group
);
42 return osync_group_env_num_groups
(self
);
45 Group
*nth_group
(int nth
) {
46 Group
*group
= osync_group_env_nth_group
(self
, nth
);
48 osync_group_ref
(group
);
53 # extend the SWIG-generated constructor
, so that we can setup our list-wrapper classes
55 def __init__
(self
, *args
):
57 self.groups
= _ListWrapper
(self.num_groups
, self.nth_group
)
62 %constant int LOCK_OK
= OSYNC_LOCK_OK
;
63 %constant int
LOCKED = OSYNC_LOCKED
;
64 %constant int LOCK_STALE
= OSYNC_LOCK_STALE
;
66 enum ConflictResolution
();
67 %constant int CONFLICT_RESOLUTION_UNKNOWN
= OSYNC_CONFLICT_RESOLUTION_UNKNOWN
;
68 %constant int CONFLICT_RESOLUTION_DUPLICATE
= OSYNC_CONFLICT_RESOLUTION_DUPLICATE
;
69 %constant int CONFLICT_RESOLUTION_IGNORE
= OSYNC_CONFLICT_RESOLUTION_IGNORE
;
70 %constant int CONFLICT_RESOLUTION_NEWER
= OSYNC_CONFLICT_RESOLUTION_NEWER
;
71 %constant int CONFLICT_RESOLUTION_SELECT
= OSYNC_CONFLICT_RESOLUTION_SELECT
;
73 typedef struct
{} Group
;
77 Group
*group
= osync_group_new
(&err);
78 if
(raise_exception_on_error
(err
))
85 osync_group_unref
(self
);
89 return osync_group_lock
(self
);
93 osync_group_unlock
(self
);
96 void set_name
(const char
*name
) {
97 osync_group_set_name
(self
, name
);
100 const char
*get_name
() {
101 return osync_group_get_name
(self
);
106 bool ret
= osync_group_save
(self
, &err);
107 if
(!raise_exception_on_error
(err
) && !ret)
108 wrapper_exception
("osync_group_save failed but did not set error code");
113 bool ret
= osync_group_delete
(self
, &err);
114 if
(!raise_exception_on_error
(err
) && !ret)
115 wrapper_exception
("osync_group_delete failed but did not set error code");
120 bool ret
= osync_group_reset
(self
, &err);
121 if
(!raise_exception_on_error
(err
) && !ret)
122 wrapper_exception
("osync_group_reset failed but did not set error code");
125 void load
(const char
*path
) {
127 bool ret
= osync_group_load
(self
, path
, &err);
128 if
(!raise_exception_on_error
(err
) && !ret)
129 wrapper_exception
("osync_group_load failed but did not set error code");
132 void add_member
(Member
*member
) {
133 osync_group_add_member
(self
, member
);
136 void remove_member
(Member
*member
) {
137 osync_group_remove_member
(self
, member
);
140 Member
*find_member
(int id
) {
141 Member
*member
= osync_group_find_member
(self
, id
);
143 osync_member_ref
(member
);
147 Member
*nth_member
(int nth
) {
148 Member
*member
= osync_group_nth_member
(self
, nth
);
150 osync_member_ref
(member
);
155 return osync_group_num_members
(self
);
158 const char
*get_configdir
() {
159 return osync_group_get_configdir
(self
);
162 void set_configdir
(const char
*directory
) {
163 osync_group_set_configdir
(self
, directory
);
167 return osync_group_num_objtypes
(self
);
170 const char
*nth_objtype
(int nth
) {
171 return osync_group_nth_objtype
(self
, nth
);
174 void set_objtype_enabled
(const char
*objtype
, bool enabled
) {
175 osync_group_set_objtype_enabled
(self
, objtype
, enabled
);
178 int objtype_enabled
(const char
*objtype
) {
179 return osync_group_objtype_enabled
(self
, objtype
);
183 void add_filter
(Filter
*filter
) {
184 osync_group_add_filter
(self
, filter
);
187 void remove_filter
(Filter
*filter
) {
188 osync_group_remove_filter
(self
, filter
);
192 return osync_group_num_filters
(self
);
195 Filter
*nth_filter
(int nth
) {
196 Filter
*filter
= osync_group_nth_filter
(self
, nth
);
198 osync_filter_ref
(filter
);
203 void set_last_synchronization
(time_t last_sync
) {
204 osync_group_set_last_synchronization
(self
, last_sync
);
207 time_t get_last_synchronization
() {
208 return osync_group_get_last_synchronization
(self
);
211 void set_conflict_resolution
(ConflictResolution res
, int num
) {
212 osync_group_set_conflict_resolution
(self
, res
, num
);
215 %apply ConflictResolution
*OUTPUT { ConflictResolution
*res
, int
*num
};
216 %apply int
*OUTPUT { ConflictResolution
*res
, int
*num
};
217 void get_conflict_resolution
(ConflictResolution
*res
, int
*num
) {
218 osync_group_get_conflict_resolution
(self
, res
, num
);
221 bool get_merger_enabled
() {
222 return osync_group_get_merger_enabled
(self
);
225 void set_merger_enabled
(bool enable_merger
) {
226 osync_group_set_merger_enabled
(self
, enable_merger
);
229 bool get_converter_enabled
() {
230 return osync_group_get_converter_enabled
(self
);
233 void set_converter_enabled
(bool enable_converter
) {
234 osync_group_set_converter_enabled
(self
, enable_converter
);
238 name
= property
(get_name
, set_name
)
239 configdir
= property
(get_configdir
, set_configdir
)
240 last_synchronization
= property
(get_last_synchronization
, set_last_synchronization
)
241 merger_enabled
= property
(get_merger_enabled
, set_merger_enabled
)
242 converter_enabled
= property
(get_converter_enabled
, set_converter_enabled
)
244 # extend the SWIG-generated constructor
, so that we can setup our list-wrapper classes
246 def __init__
(self
, *args
):
247 self.__oldinit
(*args
)
248 self.members
= _ListWrapper
(self.num_members
, self.nth_member
)
249 self.objtypes
= _ListWrapper
(self.num_objtypes
, self.nth_objtype
)
251 self.filters
= _ListWrapper
(self.num_filters
, self.nth_filter
)
257 typedef enum
{} StartType
;
259 %constant int START_TYPE_UNKNOWN
= OSYNC_START_TYPE_UNKNOWN
;
260 %constant int START_TYPE_PROCESS
= OSYNC_START_TYPE_PROCESS
;
261 %constant int START_TYPE_THREAD
= OSYNC_START_TYPE_THREAD
;
262 %constant int START_TYPE_EXTERNAL
= OSYNC_START_TYPE_EXTERNAL
;
265 typedef struct
{} Member
;
269 Member
*member
= osync_member_new
(&err);
270 if
(raise_exception_on_error
(err
))
277 osync_member_unref
(self
);
280 const char
*get_pluginname
() {
281 return osync_member_get_pluginname
(self
);
284 void set_pluginname
(const char
*pluginname
) {
285 osync_member_set_pluginname
(self
, pluginname
);
288 const char
*get_name
() {
289 return osync_member_get_name
(self
);
292 void set_name
(const char
*name
) {
293 osync_member_set_name
(self
, name
);
296 const char
*get_configdir
() {
297 return osync_member_get_configdir
(self
);
300 void set_configdir
(const char
*configdir
) {
301 osync_member_set_configdir
(self
, configdir
);
304 PluginConfig
*get_config_or_default
() {
306 PluginConfig
*ret
= osync_member_get_config_or_default
(self
, &err);
307 if
(raise_exception_on_error
(err
))
314 return osync_member_has_config
(self
);
317 PluginConfig
*get_config
() {
319 PluginConfig
*ret
= osync_member_get_config
(self
, &err);
320 if
(raise_exception_on_error
(err
))
326 void set_config
(PluginConfig
*data
) {
327 osync_member_set_config
(self
, data
);
330 void load
(const char
*path
) {
332 bool ret
= osync_member_load
(self
, path
, &err);
333 if
(!raise_exception_on_error
(err
) && !ret)
334 wrapper_exception
("osync_member_load failed but did not set error code");
339 bool ret
= osync_member_save
(self
, &err);
340 if
(!raise_exception_on_error
(err
) && !ret)
341 wrapper_exception
("osync_member_save failed but did not set error code");
346 bool ret
= osync_member_delete
(self
, &err);
347 if
(!raise_exception_on_error
(err
) && !ret)
348 wrapper_exception
("osync_member_delete failed but did not set error code");
351 long long int get_id
() {
352 return osync_member_get_id
(self
);
355 void add_objformat
(const char
*objtype
, const char
*format
) {
356 osync_member_add_objformat
(self
, objtype
, format
);
359 /* returns a list of strings
*/
360 PyObject
*get_objformats
(const char
*objtype
) {
362 const OSyncList
*list
= osync_member_get_objformats
(self
, objtype
, &err);
363 if
(raise_exception_on_error
(err
) || list
== NULL)
366 return osynclist_to_pylist
(list
, SWIGTYPE_p_char
);
369 void add_objtype_sink
(ObjTypeSink
*sink
) {
370 osync_member_add_objtype_sink
(self
, sink
);
374 return osync_member_num_objtypes
(self
);
377 const char
*nth_objtype
(int nth
) {
378 return osync_member_nth_objtype
(self
, nth
);
381 bool objtype_enabled
(const char
*objtype
) {
382 return osync_member_objtype_enabled
(self
, objtype
);
385 void set_objtype_enabled
(const char
*objtype
, bool enabled
) {
386 osync_member_set_objtype_enabled
(self
, objtype
, enabled
);
389 Capabilities
*get_capabilities
() {
390 Capabilities
*caps
= osync_member_get_capabilities
(self
);
392 osync_capabilities_ref
(caps
);
396 void set_capabilities
(Capabilities
*capabilities
) {
398 bool ret
= osync_member_set_capabilities
(self
, capabilities
, &err);
399 if
(!raise_exception_on_error
(err
) && !ret)
400 wrapper_exception
("osync_member_set_capabilities failed but did not set error code");
403 Merger
*get_merger
() {
404 Merger
*merger
= osync_member_get_merger
(self
);
406 osync_merger_ref
(merger
);
410 void flush_objtypes
() {
411 osync_member_flush_objtypes
(self
);
415 pluginname
= property
(get_pluginname
, set_pluginname
)
416 name
= property
(get_name
, set_name
)
417 configdir
= property
(get_configdir
, set_configdir
)
418 config
= property
(get_config
, set_config
)
419 id
= property
(get_id
)
420 capabilities
= property
(get_capabilities
, set_capabilities
)
421 merger
= property
(get_merger
)
423 # extend the SWIG-generated constructor
, so that we can setup our list-wrapper classes
425 def __init__
(self
, *args
):
426 self.__oldinit
(*args
)
427 self.objtypes
= _ListWrapper
(self.num_objtypes
, self.nth_objtype
)