X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/49865e9016967b29688098e17194859c937448fc..6af809fdd97845671db6136b3903e0d543ab7217:/src/include/surf/surf_resource.h diff --git a/src/include/surf/surf_resource.h b/src/include/surf/surf_resource.h index 23847f4d66..fdc1eb64bb 100644 --- a/src/include/surf/surf_resource.h +++ b/src/include/surf/surf_resource.h @@ -1,5 +1,6 @@ -/* Copyright (c) 2009 The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-2013. 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. */ @@ -8,31 +9,37 @@ #ifndef SURF_RESOURCE_H #define SURF_RESOURCE_H -static XBT_INLINE -surf_resource_t surf_resource_new(size_t childsize, - surf_model_t model, char *name, xbt_dict_t props) { +/*FIXME:DELETEstatic XBT_INLINE + surf_resource_t surf_resource_new(size_t childsize, + surf_model_t model, const char *name, + xbt_dict_t props, void_f_pvoid_t free_f) +{ surf_resource_t res = xbt_malloc0(childsize); res->model = model; - res->name = name; + res->name = xbt_strdup(name); res->properties = props; + res->free_f=free_f; return res; } -static XBT_INLINE void surf_resource_free(void* r) { +static XBT_INLINE void surf_resource_free(void *r) +{ surf_resource_t resource = r; - if (resource->name) - free(resource->name); - if (resource->properties) - xbt_dict_free(&resource->properties); + if(resource->free_f) + resource->free_f(r); + free(resource->name); + xbt_dict_free(&resource->properties); free(resource); } -static XBT_INLINE const char *surf_resource_name(const void *resource) { - return ((surf_resource_t)resource)->name; +static XBT_INLINE const char *surf_resource_name(const void *resource) +{ + return ((surf_resource_t) resource)->name; } -static XBT_INLINE xbt_dict_t surf_resource_properties(const void *resource) { - return ((surf_resource_t)resource)->properties; -} +static XBT_INLINE xbt_dict_t surf_resource_properties(const void *resource) +{ + return ((surf_resource_t) resource)->properties; +}*/ -#endif /* SURF_RESOURCE_H */ +#endif /* SURF_RESOURCE_H */