diff options
Diffstat (limited to 'debian/opensync/opensync-0.22/osengine/osengine_flags.c')
-rw-r--r-- | debian/opensync/opensync-0.22/osengine/osengine_flags.c | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/debian/opensync/opensync-0.22/osengine/osengine_flags.c b/debian/opensync/opensync-0.22/osengine/osengine_flags.c deleted file mode 100644 index 77c7f5df..00000000 --- a/debian/opensync/opensync-0.22/osengine/osengine_flags.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * libosengine - A synchronization engine for the opensync framework - * Copyright (C) 2004-2005 Armin Bauer <armin.bauer@opensync.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "engine.h" -#include "engine_internals.h" - -OSyncFlag *osync_flag_new(OSyncFlag *parent) -{ - OSyncFlag *flag = g_malloc0(sizeof(OSyncFlag)); - flag->is_set = FALSE; - if (parent) { - flag->comb_flag = parent; - parent->num_not_set++; - osync_flag_calculate_comb(parent); - } - return flag; -} - -void osync_flag_free(OSyncFlag *flag) -{ - g_free(flag); -} - -OSyncFlag *osync_comb_flag_new(osync_bool any, osync_bool default_val) -{ - OSyncFlag *flag = osync_flag_new(NULL); - flag->is_comb = TRUE; - flag->is_any = any; - flag->default_val = default_val; - flag->is_set = default_val; - return flag; -} - -void osync_flag_attach(OSyncFlag *flag, OSyncFlag *target) -{ - if (flag->comb_flag) - return; - g_assert(target->is_comb); - flag->comb_flag = target; - if (flag->is_set) { - target->num_set++; - } else { - target->num_not_set++; - } - osync_flag_calculate_comb(target); -} - -osync_bool osync_flag_is_attached(OSyncFlag *flag) -{ - if (flag->comb_flag) - return TRUE; - return FALSE; -} - -void osync_flag_detach(OSyncFlag *flag) -{ - OSyncFlag *target = flag->comb_flag; - if (!target) - return; - if (flag->is_set) { - target->num_set--; - } else { - target->num_not_set--; - } - flag->comb_flag = NULL; - osync_flag_calculate_comb(target); -} - -void osync_flag_set_pos_trigger(OSyncFlag *flag, OSyncFlagTriggerFunc func, void *data1, void *data2) -{ - flag->pos_trigger_func = func; - flag->pos_user_data1 = data1; - flag->pos_user_data2 = data2; -} - -void osync_flag_set_neg_trigger(OSyncFlag *flag, OSyncFlagTriggerFunc func, void *data1, void *data2) -{ - flag->neg_trigger_func = func; - flag->neg_user_data1 = data1; - flag->neg_user_data2 = data2; -} - -void osync_flag_calculate_comb(OSyncFlag *flag) -{ - if (!flag->is_comb) - return; - - if (!flag->num_not_set && !flag->num_set) { - if (flag->default_val) - osync_flag_set(flag); - else - osync_flag_unset(flag); - return; - } - - if (!flag->is_any) { - if (!flag->num_not_set && flag->num_set) { - osync_flag_set(flag); - } else { - osync_flag_unset(flag); - } - } else { - if (flag->num_set) { - osync_flag_set(flag); - } else { - osync_flag_unset(flag); - } - } -} - -osync_bool osync_flag_is_set(OSyncFlag *flag) -{ - if (flag->is_set == TRUE && flag->is_changing == FALSE) - return TRUE; - return FALSE; -} - -osync_bool osync_flag_is_not_set(OSyncFlag *flag) -{ - if (flag->is_set == FALSE && flag->is_changing == FALSE) - return TRUE; - return FALSE; -} - -void osync_comb_flag_update(OSyncFlag *combflag, OSyncFlag *flag, osync_bool prev_state) -{ - if (prev_state == flag->is_set) - return; - if (flag->is_set) { - combflag->num_not_set--; - combflag->num_set++; - } else { - combflag->num_not_set++; - combflag->num_set--; - } -} - -void osync_flag_changing(OSyncFlag *flag) -{ - flag->is_changing = TRUE; -} - -void osync_flag_cancel(OSyncFlag *flag) -{ - flag->is_changing = FALSE; -} - -void osync_flag_unset(OSyncFlag *flag) -{ - osync_bool oldstate = flag->is_set; - flag->is_set = FALSE; - flag->is_changing = FALSE; - osync_flag_calc_trigger(flag, oldstate); - if (flag->comb_flag) { - osync_comb_flag_update(flag->comb_flag, flag, oldstate); - osync_flag_calculate_comb(flag->comb_flag); - } -} - -void osync_flag_set(OSyncFlag *flag) -{ - osync_bool oldstate = flag->is_set; - flag->is_set = TRUE; - flag->is_changing = FALSE; - osync_flag_calc_trigger(flag, oldstate); - if (flag->comb_flag) { - osync_comb_flag_update(flag->comb_flag, flag, oldstate); - osync_flag_calculate_comb(flag->comb_flag); - } -} - -void osync_flag_set_state(OSyncFlag *flag, osync_bool state) -{ - osync_bool oldstate = flag->is_set; - flag->is_set = state; - flag->is_changing = FALSE; - if (flag->comb_flag) { - osync_comb_flag_update(flag->comb_flag, flag, oldstate); - } - if (flag->is_comb) { - //flag->num_not_set = 0; - //flag->num_set = 0; - } -} - -osync_bool osync_flag_get_state(OSyncFlag *flag) -{ - return flag->is_set; -} - -void osync_flag_calc_trigger(OSyncFlag *flag, osync_bool oldstate) -{ - if (flag->is_set != oldstate) { - if (flag->is_set == TRUE) { - if (flag->pos_trigger_func) { - flag->pos_trigger_func(flag->pos_user_data1, flag->pos_user_data2); - } - } else { - if (flag->neg_trigger_func) { - flag->neg_trigger_func(flag->neg_user_data1, flag->neg_user_data2); - } - } - } -} |