Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
why let the user give a name to a dependency if s/he cannot get it
authorsuter <frederic.suter@cc.in2p3.fr>
Mon, 21 Jan 2013 15:24:38 +0000 (16:24 +0100)
committersuter <frederic.suter@cc.in2p3.fr>
Mon, 21 Jan 2013 20:22:28 +0000 (21:22 +0100)
after?

include/simdag/simdag.h
src/simdag/sd_task.c

index ece3c59..e3eceb1 100644 (file)
@@ -209,6 +209,8 @@ XBT_PUBLIC(const char *) SD_task_get_category (SD_task_t task);
 XBT_PUBLIC(void) SD_task_dependency_add(const char *name, void *data,
                                         SD_task_t src, SD_task_t dst);
 XBT_PUBLIC(void) SD_task_dependency_remove(SD_task_t src, SD_task_t dst);
 XBT_PUBLIC(void) SD_task_dependency_add(const char *name, void *data,
                                         SD_task_t src, SD_task_t dst);
 XBT_PUBLIC(void) SD_task_dependency_remove(SD_task_t src, SD_task_t dst);
+XBT_PUBLIC(const char *) SD_task_dependency_get_name(SD_task_t src,
+                                                     SD_task_t dst);
 XBT_PUBLIC(void *) SD_task_dependency_get_data(SD_task_t src,
                                                SD_task_t dst);
 XBT_PUBLIC(int) SD_task_dependency_exists(SD_task_t src, SD_task_t dst);
 XBT_PUBLIC(void *) SD_task_dependency_get_data(SD_task_t src,
                                                SD_task_t dst);
 XBT_PUBLIC(int) SD_task_dependency_exists(SD_task_t src, SD_task_t dst);
index 472e332..1520ead 100644 (file)
@@ -654,6 +654,23 @@ void SD_task_dependency_add(const char *name, void *data, SD_task_t src,
     __SD_task_set_state(dst, SD_SCHEDULED);
   }
 }
     __SD_task_set_state(dst, SD_SCHEDULED);
   }
 }
+/**
+ * \brief Returns the name given as input when dependency has been created..
+ *
+ * \param src a task
+ * \param dst a task depending on \a src
+ *
+ */
+const char *SD_task_dependency_get_name(SD_task_t src, SD_task_t dst){
+  unsigned int i;
+  SD_dependency_t dependency;
+
+  xbt_dynar_foreach(src->tasks_after, i, dependency){
+    if (dependency->dst == dst)
+      return dependency->name;
+  }
+  return NULL;
+}
 
 /**
  * \brief Indicates whether there is a dependency between two tasks.
 
 /**
  * \brief Indicates whether there is a dependency between two tasks.