OpenSync  0.22
osengine_debug.c
1 /*
2  * libosengine - A synchronization engine for the opensync framework
3  * Copyright (C) 2004-2005 Armin Bauer <armin.bauer@opensync.org>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  */
20 
21 #include "engine.h"
22 #include "engine_internals.h"
23 
24 void osengine_print_all(OSyncEngine *engine)
25 {
26  GList *i;
27  GList *n;
28  osync_debug("ENG", 2, "ENGINE:");
29  osync_debug("ENG", 2, "running: %s", osync_flag_get_state(engine->fl_running) ? "YES" : "NO");
30  osync_debug("ENG", 2, "sync: %s", osync_flag_get_state(engine->fl_sync) ? "YES" : "NO");
31  osync_debug("ENG", 2, "stop: %s", osync_flag_get_state(engine->fl_stop) ? "YES" : "NO");
32  osync_debug("ENG", 2, "sent changes: %s (no: %i, yes: %i)", osync_flag_get_state(engine->cmb_sent_changes) ? "YES" : "NO", engine->cmb_sent_changes->num_not_set, engine->cmb_sent_changes->num_set);
33  osync_debug("ENG", 2, "all mapped: %s (no: %i, yes: %i)", osync_flag_get_state(engine->cmb_entries_mapped) ? "YES" : "NO", engine->cmb_entries_mapped->num_not_set, engine->cmb_entries_mapped->num_set);
34  osync_debug("ENG", 2, "synced: %s (no: %i, yes: %i)", osync_flag_get_state(engine->cmb_synced) ? "YES" : "NO", engine->cmb_synced->num_not_set, engine->cmb_synced->num_set);
35  osync_debug("ENG", 2, "conflicts checked: %s (no: %i, yes: %i)", osync_flag_get_state(engine->cmb_chkconflict) ? "YES" : "NO", engine->cmb_chkconflict->num_not_set, engine->cmb_chkconflict->num_set);
36  osync_debug("ENG", 2, "finished: %s (no: %i, yes: %i)", osync_flag_get_state(engine->cmb_finished) ? "YES" : "NO", engine->cmb_finished->num_not_set, engine->cmb_finished->num_set);
37  osync_debug("ENG", 2, "connected: %s (no: %i, yes: %i)", osync_flag_get_state(engine->cmb_connected) ? "YES" : "NO", engine->cmb_connected->num_not_set, engine->cmb_connected->num_set);
38  osync_debug("ENG", 2, "Multiplied: %s (no: %i, yes: %i)", osync_flag_get_state(engine->cmb_multiplied) ? "YES" : "NO", engine->cmb_multiplied->num_not_set, engine->cmb_multiplied->num_set);
39 
40  for (i = engine->clients; i; i = i->next) {
41  OSyncClient *client = i->data;
42  osync_debug("ENG", 2, "\tCLIENT %lli %s:", osync_member_get_id(client->member), osync_member_get_pluginname(client->member));
43  osync_debug("ENG", 2, "\tconnected: %s", osync_flag_get_state(client->fl_connected) ? "YES" : "NO");
44  osync_debug("ENG", 2, "\tsent changes: %s", osync_flag_get_state(client->fl_sent_changes) ? "YES" : "NO");
45  osync_debug("ENG", 2, "\tdone: %s", osync_flag_get_state(client->fl_done) ? "YES" : "NO");
46  osync_debug("ENG", 2, "\tfinished: %s", osync_flag_get_state(client->fl_finished) ? "YES" : "NO");
47  }
48 
49  for (i = engine->maptable->mappings; i; i = i->next) {
50  OSyncMapping *mapping = i->data;
51  osync_debug("ENG", 2, "MAPPING %p ID: %lli:", mapping, mapping->id);
52  osync_debug("ENG", 2, "solved: %s", osync_flag_get_state(mapping->fl_solved) ? "YES" : "NO");
53  osync_debug("ENG", 2, "synced: %s (no: %i, yes: %i)", osync_flag_get_state(mapping->cmb_synced) ? "YES" : "NO", mapping->cmb_synced->num_not_set, mapping->cmb_synced->num_set);
54  osync_debug("ENG", 2, "conflict checked: %s", osync_flag_get_state(mapping->fl_chkconflict) ? "YES" : "NO");
55  osync_debug("ENG", 2, "muliplied: %s", osync_flag_get_state(mapping->fl_multiplied) ? "YES" : "NO");
56  osync_debug("ENG", 2, "has data: %s", osync_flag_get_state(mapping->cmb_has_data) ? "YES" : "NO");
57  osync_debug("ENG", 2, "has info: %s (no: %i, yes: %i)", osync_flag_get_state(mapping->cmb_has_info) ? "YES" : "NO", mapping->cmb_has_info->num_not_set, mapping->cmb_has_info->num_set);
58  osync_debug("ENG", 2, "delete: %s (no: %i, yes: %i)", osync_flag_get_state(mapping->cmb_deleted) ? "YES" : "NO", mapping->cmb_deleted->num_not_set, mapping->cmb_deleted->num_set);
59 
60  for (n = mapping->entries; n; n = n->next) {
61  OSyncMappingEntry *entry = n->data;
62  osync_debug("ENG", 2, "\tENTRY: %p, CHANGE %p, Member %lli:", entry, entry->change, osync_member_get_id(entry->client->member));
63  osync_debug("ENG", 2, "\tuid: %s, changetype: %i", osync_change_get_uid(entry->change), osync_change_get_changetype(entry->change));
64  osync_debug("ENG", 2, "\tObjType: %s, Format %s", osync_change_get_objtype(entry->change) ? osync_objtype_get_name(osync_change_get_objtype(entry->change)) : "None", osync_change_get_objformat(entry->change) ? osync_objformat_get_name(osync_change_get_objformat(entry->change)) : "None");
65  osync_debug("ENG", 2, "\thas data: %s", osync_flag_get_state(entry->fl_has_data) ? "YES" : "NO");
66  osync_debug("ENG", 2, "\tdirty: %s", osync_flag_get_state(entry->fl_dirty) ? "YES" : "NO");
67  osync_debug("ENG", 2, "\tmapped: %s", osync_flag_get_state(entry->fl_mapped) ? "YES" : "NO");
68  osync_debug("ENG", 2, "\thas info: %s", osync_flag_get_state(entry->fl_has_info) ? "YES" : "NO");
69  osync_debug("ENG", 2, "\tsynced: %s", osync_flag_get_state(entry->fl_synced) ? "YES" : "NO");
70  osync_debug("ENG", 2, "\tdeleted: %s", osync_flag_get_state(entry->fl_deleted) ? "YES" : "NO");
71  }
72  }
73 
74  for (n = engine->maptable->unmapped; n; n = n->next) {
75  OSyncMappingEntry *entry = n->data;
76  osync_debug("ENG", 2, "UNMAPPED ENTRY %p with change %p:", entry, entry->change);
77  osync_debug("ENG", 2, "uid: %s, changetype: %i", osync_change_get_uid(entry->change), osync_change_get_changetype(entry->change));
78  osync_debug("ENG", 2, "ObjType: %s, Format %s", osync_change_get_objtype(entry->change) ? osync_objtype_get_name(osync_change_get_objtype(entry->change)) : "None", osync_change_get_objformat(entry->change) ? osync_objformat_get_name(osync_change_get_objformat(entry->change)) : "None");
79  osync_debug("ENG", 2, "has data: %s", osync_flag_get_state(entry->fl_has_data) ? "YES" : "NO");
80  osync_debug("ENG", 2, "dirty: %s", osync_flag_get_state(entry->fl_dirty) ? "YES" : "NO");
81  osync_debug("ENG", 2, "mapped: %s", osync_flag_get_state(entry->fl_mapped) ? "YES" : "NO");
82  osync_debug("ENG", 2, "has info: %s", osync_flag_get_state(entry->fl_has_info) ? "YES" : "NO");
83  osync_debug("ENG", 2, "synced: %s", osync_flag_get_state(entry->fl_synced) ? "YES" : "NO");
84  }
85 }
86 
87 void osengine_print_flags(OSyncEngine *engine)
88 {
89  osync_trace(TRACE_INTERNAL, "ENG(RUN%i,STOP%i,SENT%i,READ%i,MAP%i,CHK%i,MUL%i,SYNC%i,COMMITTED%i)", \
90  osync_flag_is_set(engine->fl_running), \
91  osync_flag_is_not_set(engine->fl_stop), \
92  osync_flag_is_set(engine->cmb_sent_changes), \
93  osync_flag_is_set(engine->cmb_read_all), \
94  osync_flag_is_set(engine->cmb_entries_mapped), \
95  osync_flag_is_set(engine->cmb_chkconflict), \
96  osync_flag_is_set(engine->cmb_multiplied), \
97  osync_flag_is_set(engine->cmb_synced), \
98  osync_flag_is_set(engine->cmb_committed_all));
99 }
100 
101 void osync_client_print_flags(OSyncClient *client)
102 {
103  osync_trace(TRACE_INTERNAL, "CL(CON%i,SENT%i,DONE%i,FIN%i,COMMITTED%i)", \
104  osync_flag_is_set(client->fl_connected), \
105  osync_flag_is_set(client->fl_sent_changes), \
106  osync_flag_is_set(client->fl_done), \
107  osync_flag_is_set(client->fl_finished), \
108  osync_flag_is_set(client->fl_committed_all));
109 }
110 
111 void osengine_mappingentry_print_flags(OSyncMappingEntry *entry)
112 {
113  osync_trace(TRACE_INTERNAL, "ENT(DATA%i,DRY%i,MAP%i,INFO%i,SYNC%i,DEL%i)", \
114  osync_flag_is_set(entry->fl_has_data), \
115  osync_flag_is_set(entry->fl_dirty), \
116  osync_flag_is_set(entry->fl_mapped), \
117  osync_flag_is_set(entry->fl_has_info), \
118  osync_flag_is_set(entry->fl_synced), \
119  osync_flag_is_set(entry->fl_deleted));
120 }
121 
122 void osengine_mapping_print_flags(OSyncMapping *mapping)
123 {
124  osync_trace(TRACE_INTERNAL, "MAP(SOLV%i,SYNC%i,DATA%i,INFO%i,DEL%i,CHK%i,MUL%i)", \
125  osync_flag_is_set(mapping->fl_solved), \
126  osync_flag_is_set(mapping->cmb_synced), \
127  osync_flag_is_set(mapping->cmb_has_data), \
128  osync_flag_is_set(mapping->cmb_has_info), \
129  osync_flag_is_set(mapping->cmb_deleted), \
130  osync_flag_is_set(mapping->fl_chkconflict), \
131  osync_flag_is_set(mapping->fl_multiplied));
132 }
133 
134 void osengine_get_wasted(OSyncEngine *engine, int *all, int *wasted)
135 {
136  *all = engine->alldeciders;
137  *wasted = engine->wasted;
138 }
OSyncChangeType osync_change_get_changetype(OSyncChange *change)
Gets the changetype of a change.
const char * osync_change_get_uid(OSyncChange *change)
Gets the uid of a change.
OSyncObjFormat * osync_change_get_objformat(OSyncChange *change)
Gets the object format of a change.
void osync_debug(const char *subpart, int level, const char *message,...)
Used for debugging.
const char * osync_objformat_get_name(OSyncObjFormat *format)
Returns the name of a object format.
long long int osync_member_get_id(OSyncMember *member)
Gets the unique id of a member.
const char * osync_member_get_pluginname(OSyncMember *member)
Returns the name of the default plugin of the member.
void osync_trace(OSyncTraceType type, const char *message,...)
Used for tracing the application.
const char * osync_objtype_get_name(OSyncObjType *type)
Returns the name of a object type.
OSyncObjType * osync_change_get_objtype(OSyncChange *change)
Gets the object type of a change.