Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
plug leaks
[simgrid.git] / examples / msg / platform-properties / platform-properties.c
index 7df8112..5158498 100644 (file)
@@ -1,27 +1,19 @@
-/* Copyright (c) 2007-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2007-2016. 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. */
 
 #include "simgrid/msg.h"
 
-/** @addtogroup MSG_examples
- * 
- * - <b>User-defined properties: properties/properties.c</b> Attaching arbitrary informations to host, processes and
- *   such, and retrieving them with @ref MSG_host_get_properties, @ref MSG_host_get_property_value,
- *   @ref MSG_process_get_properties, and @ref MSG_process_get_property_value. Also make sure to read the platform and
- *   deployment XML files to see how to declare these data.
- */
-
 XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Property test");
 
-static void test_host(const char*hostname) 
+static void test_host(const char*hostname)
 {
   msg_host_t thehost = MSG_host_by_name(hostname);
   xbt_dict_t props = MSG_host_get_properties(thehost);
   xbt_dict_cursor_t cursor = NULL;
-  char *key, *data;
+  char *key;
+  char *data;
   const char *noexist = "Unknown";
   const char *value;
   char exist[] = "Hdd";
@@ -41,7 +33,7 @@ static void test_host(const char*hostname)
   XBT_INFO("   Property: %s old value: %s", exist, value);
 
   XBT_INFO("== Trying to modify a host property");
-  MSG_host_set_property_value(thehost, exist, xbt_strdup("250"), xbt_free_f);
+  MSG_host_set_property_value(thehost, exist, (char*)"250");
 
   /* Test if we have changed the value */
   value = MSG_host_get_property_value(thehost, exist);
@@ -50,7 +42,9 @@ static void test_host(const char*hostname)
   XBT_INFO("   Property: %s old value: %s", exist, value);
 
   /* Restore the value for the next test */
-  MSG_host_set_property_value(thehost, exist, xbt_strdup("180"), xbt_free_f);
+  MSG_host_set_property_value(thehost, exist, (char*)"180");
+
+  xbt_dict_free(&props);
 }
 
 static int alice(int argc, char *argv[]) { /* Dump what we have on the current host */
@@ -72,10 +66,18 @@ static int david(int argc, char *argv[]) {/* Dump what we have on a remote host
 
 static int bob(int argc, char *argv[])
 {
+  /* this host also tests the properties of the AS*/
+  msg_as_t root = MSG_zone_get_root();
+  XBT_INFO("== Print the properties of the AS");
+  XBT_INFO("   Process property: filename -> %s", MSG_zone_get_property_value(root, "filename"));
+  XBT_INFO("   Process property: date -> %s", MSG_zone_get_property_value(root, "date"));
+  XBT_INFO("   Process property: author -> %s", MSG_zone_get_property_value(root, "author"));
+
   /* Get the property list of current bob process */
   xbt_dict_t props = MSG_process_get_properties(MSG_process_self());
   xbt_dict_cursor_t cursor = NULL;
-  char *key, *data;
+  char *key;
+  char *data;
   const char *noexist = "UnknownProcessProp";
   XBT_ATTRIB_UNUSED const char *value;
 
@@ -87,6 +89,7 @@ static int bob(int argc, char *argv[])
 
   value = MSG_process_get_property_value(MSG_process_self(), noexist);
   xbt_assert(!value, "The property is defined (it shouldnt)");
+  xbt_dict_free(&props);
 
   return 0;
 }