X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2703e1ee2a79e9fc7c86ebb122caa515ecf24d14..1a6e40bce6e758aa2e7afffbfd3c6b63063f1472:/include/xbt/automaton.h diff --git a/include/xbt/automaton.h b/include/xbt/automaton.h index 0cdf31f64c..ef112fa2d0 100644 --- a/include/xbt/automaton.h +++ b/include/xbt/automaton.h @@ -1,3 +1,9 @@ +/* Copyright (c) 2011-2014. The SimGrid Team. + * All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + #ifndef _XBT_AUTOMATON_H #define _XBT_AUTOMATON_H @@ -28,7 +34,7 @@ typedef struct xbt_automaton { typedef struct xbt_automaton* xbt_automaton_t; typedef struct xbt_automaton_exp_label{ - enum{or=0, and=1, not=2, predicat=3, one=4} type; + enum{AUT_OR=0, AUT_AND=1, AUT_NOT=2, AUT_PREDICAT=3, AUT_ONE=4} type; union{ struct{ struct xbt_automaton_exp_label* left_exp; @@ -51,10 +57,7 @@ typedef struct xbt_automaton_transition { typedef struct xbt_automaton_transition* xbt_automaton_transition_t; -typedef struct xbt_automaton_propositional_symbol{ - char* pred; - void* function; -} s_xbt_automaton_propositional_symbol; +typedef struct xbt_automaton_propositional_symbol s_xbt_automaton_propositional_symbol; typedef struct xbt_automaton_propositional_symbol* xbt_automaton_propositional_symbol_t; @@ -93,7 +96,17 @@ XBT_PUBLIC(void) xbt_automaton_display(xbt_automaton_t a); XBT_PUBLIC(void) xbt_automaton_exp_label_display(xbt_automaton_exp_label_t l); -XBT_PUBLIC(xbt_automaton_propositional_symbol_t) xbt_automaton_propositional_symbol_new(xbt_automaton_t a, const char* id, void* fct); +XBT_PUBLIC(xbt_automaton_propositional_symbol_t) xbt_automaton_propositional_symbol_new(xbt_automaton_t a, const char* id, int(*fct)(void)); + +XBT_PUBLIC(xbt_automaton_propositional_symbol_t) xbt_automaton_propositional_symbol_new_pointer(xbt_automaton_t a, const char* id, int* value); + +XBT_PUBLIC(xbt_automaton_propositional_symbol_t) xbt_automaton_propositional_symbol_new_callback( + xbt_automaton_t a, const char* id, + int(*callback)(void*), void* data, void (*free_function)(void*)); + +XBT_PUBLIC(int) xbt_automaton_propositional_symbol_evaluate(xbt_automaton_propositional_symbol_t symbol); + +char* xbt_automaton_propositional_symbol_get_name(xbt_automaton_propositional_symbol_t symbol); XBT_PUBLIC(xbt_automaton_state_t) xbt_automaton_get_current_state(xbt_automaton_t a);