* sometime waiting on all these mailboxes using @ref MSG_comm_waitany. You can find
* an example of use of this function in the @ref MSG_examples section.
* - Provide a proper patch to implement this functionality back in MSG. That wouldn't be
- * very difficult actually. Check the function @ref MSG_mailbox_get_task_ext. During its call to
+ * very difficult actually. Check the function #MSG_mailbox_get_task_ext. During its call to
* simcall_comm_recv(), the 5th argument, match_fun, is NULL. Create a function that filters
* messages according to the host (that you will pass as sixth argument to simcall_comm_recv()
* and that your filtering function will receive as first parameter, and then, the filter could
#endif
}
+/**
+ * \brief Returns the value of a given AS or router property
+ *
+ * \param asr the name of a router or AS
+ * \param name a property name
+ * \return value of a property (or NULL if property not set)
+ */
+const char *MSG_as_router_get_property_value(const char* asr, const char *name)
+{
+ return xbt_dict_get_or_null(MSG_as_router_get_properties(asr), name);
+}
+
+/**
+ * \brief Returns a xbt_dict_t consisting of the list of properties assigned to
+ * a the AS or router
+ *
+ * \param asr the name of a router or AS
+ * \return a dict containing the properties
+ */
+xbt_dict_t MSG_as_router_get_properties(const char* asr)
+{
+ // FIXME do this function with a simcall
+ return xbt_lib_get_or_null(as_router_lib, asr, ROUTING_PROP_ASR_LEVEL);
+}
+
+/**
+ * \brief Change the value of a given AS or router
+ *
+ * \param asr the name of a router or AS
+ * \param name a property name
+ * \param value what to change the property to
+ * \param free_ctn the freeing function to use to kill the value on need
+ */
+void MSG_as_router_set_property_value(const char* asr, const char *name, char *value,void_f_pvoid_t free_ctn) {
+ xbt_dict_set(MSG_as_router_get_properties(asr), name, value,free_ctn);
+}
+
#ifdef MSG_USE_DEPRECATED
/** \ingroup msg_deprecated_functions
*