X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0ee6fdb41d9ba663184bdd4d48f79ef28a0e6fbb..95af5d3f9b1231b3e3d8d17888c3e657c2b95e88:/include/gras/datadesc.h diff --git a/include/gras/datadesc.h b/include/gras/datadesc.h index 641df53c3d..d91cd28527 100644 --- a/include/gras/datadesc.h +++ b/include/gras/datadesc.h @@ -11,6 +11,7 @@ #define GRAS_DATADESC_H #include "xbt/misc.h" /* BEGIN_DECL */ +#include "xbt/dynar.h" /* void_f_pvoid_t */ BEGIN_DECL() @@ -99,7 +100,7 @@ gras_datadesc_type_t gras_datadesc_by_name(const char *name); * (comma separates macro args). * * For example, change \verbatim int a, b;\endverbatim to \verbatim int a; - int b:\endverbatim + int b;\endverbatim */ /** @{ */ @@ -172,11 +173,11 @@ typedef struct s_gras_cbps *gras_cbps_t; /* callbacks prototypes */ /** \brief Prototype of type callbacks returning nothing. */ -typedef void (*gras_datadesc_type_cb_void_t)(gras_cbps_t vars, void *data); +typedef void (*gras_datadesc_type_cb_void_t)(gras_datadesc_type_t typedesc, gras_cbps_t vars, void *data); /** \brief Prototype of type callbacks returning an int. */ -typedef int (*gras_datadesc_type_cb_int_t)(gras_cbps_t vars, void *data); +typedef int (*gras_datadesc_type_cb_int_t)(gras_datadesc_type_t typedesc, gras_cbps_t vars, void *data); /** \brief Prototype of type callbacks selecting a type. */ -typedef gras_datadesc_type_t (*gras_datadesc_selector_t)(gras_cbps_t vars, void *data); +typedef gras_datadesc_type_t (*gras_datadesc_selector_t)(gras_datadesc_type_t typedesc, gras_cbps_t vars, void *data); /****************************************** @@ -216,6 +217,10 @@ gras_datadesc_type_t gras_datadesc_type_t gras_datadesc_ref_pop_arr(gras_datadesc_type_t element_type); +gras_datadesc_type_t + gras_datadesc_dynar(gras_datadesc_type_t elm_t, + void_f_pvoid_t *free_func); + /********************************* * Change stuff within datadescs * *********************************/ @@ -246,7 +251,7 @@ void gras_datadesc_cb_field_push (gras_datadesc_type_t type, * Get stuff within datadescs * ******************************/ /** \brief Returns the name of a datadescription */ -char * gras_datadesc_get_name(gras_datadesc_type_t ddt); +const char * gras_datadesc_get_name(gras_datadesc_type_t ddt); /** \brief Returns the identifier of a datadescription */ int gras_datadesc_get_id(gras_datadesc_type_t ddt); @@ -280,11 +285,11 @@ gras_cbps_i_push(gras_cbps_t ps, int val); int gras_cbps_i_pop(gras_cbps_t ps); -int gras_datadesc_cb_pop(gras_cbps_t vars, void *data); -void gras_datadesc_cb_push_int(gras_cbps_t vars, void *data); -void gras_datadesc_cb_push_uint(gras_cbps_t vars, void *data); -void gras_datadesc_cb_push_lint(gras_cbps_t vars, void *data); -void gras_datadesc_cb_push_ulint(gras_cbps_t vars, void *data); +int gras_datadesc_cb_pop(gras_datadesc_type_t typedesc, gras_cbps_t vars, void *data); +void gras_datadesc_cb_push_int(gras_datadesc_type_t typedesc, gras_cbps_t vars, void *data); +void gras_datadesc_cb_push_uint(gras_datadesc_type_t typedesc, gras_cbps_t vars, void *data); +void gras_datadesc_cb_push_lint(gras_datadesc_type_t typedesc, gras_cbps_t vars, void *data); +void gras_datadesc_cb_push_ulint(gras_datadesc_type_t typedesc, gras_cbps_t vars, void *data); /* @} */