22 #include "engine_internals.h" 35 #ifndef DOXYGEN_SHOULD_SKIP_THIS 36 void osengine_mappingentry_decider(OSyncEngine *engine, OSyncMappingEntry *entry)
39 osengine_print_flags(engine);
40 osengine_mappingentry_print_flags(entry);
42 engine->alldeciders++;
44 if (osync_flag_is_set(engine->fl_running) \
45 && osync_flag_is_set(engine->fl_sync) \
46 && osync_flag_is_set(entry->fl_has_info) \
47 && osync_flag_is_not_set(entry->fl_has_data)) {
49 osync_client_get_change_data(entry->client, engine, entry, NULL);
54 if (osync_flag_is_set(engine->fl_running) \
55 && osync_flag_is_set(engine->cmb_read_all) \
56 && osync_flag_is_set(engine->cmb_sent_changes) \
57 && osync_flag_is_set(engine->fl_sync) \
58 && osync_flag_is_set(entry->fl_has_info) \
59 && osync_flag_is_set(entry->fl_has_data)) {
60 if (osync_flag_is_not_set(entry->fl_mapped)) {
62 osengine_change_map(engine, entry);
66 if (osync_flag_is_set(entry->fl_dirty)) {
68 osync_client_commit_change(entry->client, engine, entry, NULL);
78 void osengine_mappingentry_all_deciders(OSyncEngine *engine, OSyncMapping *mapping)
80 osync_debug(
"ENG", 3,
"Calling all mappingentry deciders (%i) for mapping %p", g_list_length(mapping->entries), mapping);
82 for (e = mapping->entries; e ; e = e->next) {
83 OSyncMappingEntry *entry = e->data;
84 send_mappingentry_changed(engine, entry);
88 void osengine_mapping_decider(OSyncEngine *engine, OSyncMapping *mapping)
91 osengine_print_flags(engine);
92 osengine_mapping_print_flags(mapping);
94 engine->alldeciders++;
96 if (osync_flag_is_set(engine->fl_running) \
97 && osync_flag_is_set(engine->cmb_sent_changes) \
98 && osync_flag_is_set(engine->cmb_read_all) \
99 && osync_flag_is_set(engine->cmb_entries_mapped) \
100 && osync_flag_is_set(mapping->cmb_has_data) \
101 && osync_flag_is_not_set(mapping->cmb_synced) \
102 && osync_flag_is_not_set(mapping->fl_solved) \
103 && osync_flag_is_not_set(mapping->fl_chkconflict)) {
105 osengine_mapping_check_conflict(engine, mapping);
110 if (osync_flag_is_set(engine->fl_running) \
111 && osync_flag_is_set(engine->cmb_sent_changes) \
112 && osync_flag_is_set(engine->cmb_read_all) \
113 && osync_flag_is_set(engine->cmb_entries_mapped) \
114 && osync_flag_is_set(mapping->cmb_has_data) \
115 && osync_flag_is_not_set(mapping->cmb_synced) \
116 && osync_flag_is_set(mapping->fl_solved) \
117 && osync_flag_is_set(mapping->fl_chkconflict) \
118 && osync_flag_is_not_set(mapping->fl_multiplied)) {
120 osengine_mapping_multiply_master(engine, mapping);
125 if (osync_flag_is_set(engine->fl_running) \
126 && osync_flag_is_set(engine->cmb_synced) \
127 && osync_flag_is_set(mapping->cmb_has_info) \
128 && osync_flag_is_not_set(mapping->cmb_deleted) \
129 && osync_flag_is_set(engine->cmb_multiplied)) {
131 osengine_mapping_reset(mapping);
136 if (osync_flag_is_set(engine->fl_running) \
137 && osync_flag_is_set(mapping->cmb_synced) \
138 && osync_flag_is_set(mapping->cmb_deleted)) {
140 osengine_mapping_delete(mapping);
149 void osengine_mapping_all_deciders(OSyncEngine *engine)
153 for (m = engine->maptable->mappings; m; m = m->next) {
154 OSyncMapping *mapping = m->data;
155 send_mapping_changed(engine, mapping);
159 void osengine_client_decider(OSyncEngine *engine, OSyncClient *client)
162 osengine_print_flags(engine);
163 osync_client_print_flags(client);
165 engine->alldeciders++;
167 if (osync_flag_is_set(engine->fl_running) \
168 && osync_flag_is_not_set(engine->fl_stop) \
169 && osync_flag_is_not_set(client->fl_done) \
170 && osync_flag_is_not_set(client->fl_connected) \
171 && osync_flag_is_not_set(client->fl_finished)) {
173 osync_client_connect(client, engine, NULL);
178 if (osync_flag_is_set(engine->fl_running) \
179 && osync_flag_is_not_set(engine->fl_stop) \
180 && osync_flag_is_not_set(client->fl_done) \
181 && osync_flag_is_set(client->fl_connected) \
182 && osync_flag_is_not_set(client->fl_sent_changes) \
183 && osync_flag_is_set(engine->cmb_connected)) {
185 osync_client_get_changes(client, engine, NULL);
190 if (osync_flag_is_set(engine->fl_running) \
191 && osync_flag_is_not_set(engine->fl_stop) \
192 && osync_flag_is_not_set(client->fl_done) \
193 && osync_flag_is_set(client->fl_connected) \
194 && osync_flag_is_set(client->fl_sent_changes) \
195 && osync_flag_is_not_set(client->fl_committed_all) \
196 && osync_flag_is_set(engine->cmb_sent_changes) \
197 && osync_flag_is_set(engine->cmb_multiplied) \
198 && osync_flag_is_set(engine->cmb_read_all) \
199 && osync_flag_is_set(engine->cmb_entries_mapped) \
200 && osync_flag_is_set(engine->cmb_committed_all)) {
202 osync_client_committed_all(client, engine, NULL);
207 if (osync_flag_is_set(engine->fl_running) \
208 && osync_flag_is_not_set(engine->fl_stop) \
209 && osync_flag_is_not_set(client->fl_done) \
210 && osync_flag_is_set(client->fl_connected) \
211 && osync_flag_is_set(client->fl_sent_changes) \
212 && osync_flag_is_set(client->fl_committed_all) \
213 && osync_flag_is_set(engine->cmb_read_all) \
214 && osync_flag_is_set(engine->cmb_sent_changes) \
215 && osync_flag_is_set(engine->cmb_synced) \
216 && osync_flag_is_set(engine->cmb_entries_mapped)) {
218 osync_client_sync_done(client, engine, NULL);
223 if (osync_flag_is_set(engine->fl_running) \
224 && (osync_flag_is_set(client->fl_done) \
225 || osync_flag_is_set(engine->fl_stop)) \
226 && osync_flag_is_set(client->fl_connected)) {
228 osync_client_disconnect(client, engine, NULL);
237 void osengine_client_all_deciders(OSyncEngine *engine)
240 osync_debug(
"ENG", 3,
"Calling all client deciders (%i)", g_list_length(engine->clients));
241 for (c = engine->clients; c; c = c->next) {
242 OSyncClient *client = c->data;
243 osengine_client_decider(engine, client);
void osync_debug(const char *subpart, int level, const char *message,...)
Used for debugging.
void osync_trace(OSyncTraceType type, const char *message,...)
Used for tracing the application.