X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b1acf7fe2f1886e9adcb4313f53548c9995a906c..c76053bdb9d3a9e353be7a5533d1e0bfc48d9d03:/include/datadesc.h diff --git a/include/datadesc.h b/include/datadesc.h index 3a904bee1d..925a301c61 100644 --- a/include/datadesc.h +++ b/include/datadesc.h @@ -3,7 +3,7 @@ /* gras/datadesc.h - Describing the data you want to exchange */ /* Authors: Martin Quinson */ -/* Copyright (C) 2003 the OURAGAN project. */ +/* Copyright (C) 2003, 2004 Martin Quinson. */ /* 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. */ @@ -52,8 +52,7 @@ typedef int (*gras_datadesc_type_cb_int_t)(void *vars, /*********************************************** **** Search and retrieve declared datatype **** ***********************************************/ -gras_error_t gras_datadesc_by_name(const char *name, - gras_datadesc_type_t **type); +gras_datadesc_type_t *gras_datadesc_by_name(const char *name); /****************************************** **** Declare datadescription yourself **** @@ -66,10 +65,8 @@ gras_error_t gras_datadesc_declare_struct_append(gras_datadesc_type_t *struct_type, const char *name, gras_datadesc_type_t *field_type); -gras_error_t -gras_datadesc_declare_struct_append_name(gras_datadesc_type_t *struct_type, - const char *name, - const char *field_type_name); +void +gras_datadesc_declare_struct_close(gras_datadesc_type_t *struct_type); gras_error_t gras_datadesc_declare_union(const char *name, gras_datadesc_type_cb_int_t selector, @@ -78,10 +75,8 @@ gras_error_t gras_datadesc_declare_union_append(gras_datadesc_type_t *union_type, const char *name, gras_datadesc_type_t *field_type); -gras_error_t -gras_datadesc_declare_union_append_name(gras_datadesc_type_t *union_type, - const char *name, - const char *field_type_name); +void +gras_datadesc_declare_union_close(gras_datadesc_type_t *union_type); gras_error_t gras_datadesc_declare_ref(const char *name, gras_datadesc_type_t *referenced_type, @@ -111,6 +106,12 @@ void gras_datadesc_cb_set_pre (gras_datadesc_type_t *type, void gras_datadesc_cb_set_post(gras_datadesc_type_t *type, gras_datadesc_type_cb_void_t post); +/****************************** + * Get stuff within datadescs * + ******************************/ +char * gras_datadesc_get_name(gras_datadesc_type_t *ddt); +int gras_datadesc_get_id(gras_datadesc_type_t *ddt); + /******************************************************** * Advanced data describing: callback persistent states * ********************************************************/ @@ -151,20 +152,17 @@ int gras_arch_selfid(void); /* ID of this arch */ /**************************** **** Parse C statements **** ****************************/ -gras_error_t +gras_datadesc_type_t * gras_datadesc_parse(const char *name, - const char *Cdefinition, - gras_datadesc_type_t **dst); + const char *Cdefinition); #define GRAS_DEFINE_TYPE(name,def) \ static const char * _gras_this_type_symbol_does_not_exist__##name=#def; def -/*#define gras_type_symbol_parse(name) \ - _gras_datadesc_parse(_gras_this_datadesc_type_symbol_does_not_exist__##name) -*/ -#define gras_datadesc_by_symbol(name) \ - (bag->bag_ops->get_type_by_name(bag, NULL, #name) ? \ - bag->bag_ops->get_type_by_name(bag, NULL, #name) : \ - gras_datadesc_parse(name) \ +#define gras_datadesc_by_symbol(name) \ + (gras_datadesc_by_name(#name) ? \ + gras_datadesc_by_name(#name) : \ + gras_datadesc_parse(#name, \ + _gras_this_type_symbol_does_not_exist__##name) \ ) /*****************************