Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
chainsend: change tesh to test with 8192 pieces
[simgrid.git] / include / xbt / automaton.h
index 56e7e6e..9f57747 100644 (file)
@@ -1,11 +1,3 @@
-/*  xbt/automaton.h -- büchi automaton                                      */
-
-/* Copyright (c) 2011. 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
 
@@ -36,9 +28,7 @@ typedef struct xbt_automaton {
 typedef struct xbt_automaton* xbt_automaton_t;
 
 typedef struct xbt_exp_label{
-  /* fixme: "or", "and", and "not" are reserved keywords in C++ */
-  /* enum{or=0, and=1, not=2, predicat=3, one=4} type; */
-  int type;
+  enum{or=0, and=1, not=2, predicat=3, one=4} type;
   union{
     struct{
       struct xbt_exp_label* left_exp;
@@ -69,7 +59,9 @@ typedef struct xbt_propositional_symbol{
 typedef struct xbt_propositional_symbol* xbt_propositional_symbol_t;
 
 
-XBT_PUBLIC(xbt_automaton_t) xbt_automaton_new_automaton(void);
+XBT_PUBLIC(xbt_automaton_t) xbt_automaton_new(void);
+
+XBT_PUBLIC(void) xbt_automaton_load(xbt_automaton_t automaton, const char *file);
 
 XBT_PUBLIC(xbt_state_t) xbt_automaton_new_state(xbt_automaton_t a, int type, char* id);
 
@@ -83,12 +75,6 @@ XBT_PUBLIC(xbt_dynar_t) xbt_automaton_get_transitions(xbt_automaton_t a);
 
 XBT_PUBLIC(xbt_transition_t) xbt_automaton_get_transition(xbt_automaton_t a, xbt_state_t src, xbt_state_t dst);
 
-XBT_PUBLIC(void) xbt_automaton_free_automaton(xbt_automaton_t a, void_f_pvoid_t transition_free_function);
-
-XBT_PUBLIC(void) xbt_automaton_free_state(xbt_automaton_t a, xbt_state_t s, void_f_pvoid_t transition_free_function);
-
-XBT_PUBLIC(void) xbt_automaton_free_transition(xbt_automaton_t a, xbt_transition_t t, void_f_pvoid_t transition_free_function);
-
 XBT_PUBLIC(xbt_state_t) xbt_automaton_transition_get_source(xbt_transition_t t);
 
 XBT_PUBLIC(xbt_state_t) xbt_automaton_transition_get_destination(xbt_transition_t t);
@@ -119,6 +105,17 @@ XBT_PUBLIC(int) automaton_transition_compare(const void *t1, const void *t2);
 
 XBT_PUBLIC(int) automaton_label_transition_compare(xbt_exp_label_t l1, xbt_exp_label_t l2);
 
+XBT_PUBLIC(void) xbt_state_free_voidp(void *s);
+
+XBT_PUBLIC(void) xbt_state_free(xbt_state_t s);
+
+XBT_PUBLIC(void) xbt_transition_free_voidp(void *t);
+
+XBT_PUBLIC(void) xbt_exp_label_free_voidp(void *e);
+
+XBT_PUBLIC(void) xbt_propositional_symbol_free_voidp(void *ps);
+
+XBT_PUBLIC(void) xbt_automaton_free(xbt_automaton_t a);
 
 SG_END_DECL()