git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6391
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
SMPI:
* Implement MPI_Waitany and MPI_Waitall
SMPI:
* Implement MPI_Waitany and MPI_Waitall
+ XBT:
+ * Add xbt_set_get_by_name_or_null() [Silas De Munck]
+
-- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
SimGrid (3.3.1) stable; urgency=low
-- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
SimGrid (3.3.1) stable; urgency=low
/** @addtogroup XBT_set
* @brief A data container consisting in \ref XBT_dict and \ref XBT_dynar
/** @addtogroup XBT_set
* @brief A data container consisting in \ref XBT_dict and \ref XBT_dynar
* The elements stored in such a data structure can be retrieve both by
* name and by ID. For this to work, the first fields of the structures
* stored must begin with the following fields:
* The elements stored in such a data structure can be retrieve both by
* name and by ID. For this to work, the first fields of the structures
* stored must begin with the following fields:
unsigned int ID;
char *name;
unsigned int name_len;
unsigned int ID;
char *name;
unsigned int name_len;
- // my other fields, constituting the payload
+ // my other fields, constituting the payload
} my_element_type_t; \endverbatim
} my_element_type_t; \endverbatim
- *
- * Since we are casting elements around, no protection is ensured by the
- * compiler. It is thus safer to define the headers using the macro
+ *
+ * Since we are casting elements around, no protection is ensured by the
+ * compiler. It is thus safer to define the headers using the macro
* defined to that extend:
* \verbatim struct {
XBT_SET_HEADERS;
* defined to that extend:
* \verbatim struct {
XBT_SET_HEADERS;
- // my other fields, constituting the payload
+ // my other fields, constituting the payload
} my_element_type_t; \endverbatim
*
* It is now possible to remove an element from such a data structure.
*
* @todo
} my_element_type_t; \endverbatim
*
* It is now possible to remove an element from such a data structure.
*
* @todo
- * Such a datastructure was necessary/useful to store the GRAS type
+ * Such a datastructure was necessary/useful to store the GRAS type
* descriptions, but it should be reworked to become generic.
*
*/
* descriptions, but it should be reworked to become generic.
*
*/
void_f_pvoid_t free_func);
XBT_PUBLIC(void) xbt_set_remove(xbt_set_t set, xbt_set_elm_t elm);
XBT_PUBLIC(void) xbt_set_remove_by_name(xbt_set_t set, const char *key);
void_f_pvoid_t free_func);
XBT_PUBLIC(void) xbt_set_remove(xbt_set_t set, xbt_set_elm_t elm);
XBT_PUBLIC(void) xbt_set_remove_by_name(xbt_set_t set, const char *key);
+XBT_PUBLIC(xbt_set_elm_t) xbt_set_get_by_name_or_null(xbt_set_t set, const char *key);
XBT_PUBLIC(void) xbt_set_remove_by_name_ext(xbt_set_t set, const char *key,
int key_len);
XBT_PUBLIC(void) xbt_set_remove_by_id(xbt_set_t set, int id);
XBT_PUBLIC(void) xbt_set_remove_by_name_ext(xbt_set_t set, const char *key,
int key_len);
XBT_PUBLIC(void) xbt_set_remove_by_id(xbt_set_t set, int id);
return xbt_dict_get(set->dict, name);
}
return xbt_dict_get(set->dict, name);
}
+/** @brief Retrieve data by providing its name.
+ *
+ * \param set
+ * \param name Name of the searched cell
+ * \returns the data you're looking for, returns NULL if not found
+ */
+xbt_set_elm_t xbt_set_get_by_name_or_null (xbt_set_t set,
+ const char *name) {
+ DEBUG1("Lookup key %s",name);
+ return xbt_dict_get_or_null(set->dict, name);
+}
+
/** @brief Retrieve data by providing its name and the length of the name
*
* \param set
/** @brief Retrieve data by providing its name and the length of the name
*
* \param set