From 276cd60a21dd997b8b1e107511855b4f20c20168 Mon Sep 17 00:00:00 2001 From: mquinson Date: Sat, 4 Jun 2005 20:42:58 +0000 Subject: [PATCH 1/1] ability to send dynars transparently; type cb now receive the datadesc they operate on as argument git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@1334 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- include/gras/datadesc.h | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/include/gras/datadesc.h b/include/gras/datadesc.h index 49f9ac0631..58d416977f 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() @@ -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 * *********************************/ @@ -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); /* @} */ -- 2.20.1