-SG_task_t SG_task_create(const char *name, void *data, double amount);
-int SG_task_schedule(SG_task_t task, int workstation_nb,
- SG_workstation_t **workstation_list, double *computation_amount,
+/** @defgroup SD_task_management Tasks
+ * @brief Functions for managing the tasks
+ *
+ * This section describes the functions for managing the tasks.
+ *
+ * A task is some <em>computing amount</em> that can be executed
+ * in parallel on several workstations. A task may depend on other
+ * tasks, this means that the task cannot start until the other tasks are done.
+ * Each task has a <em>\ref e_SD_task_state_t "state"</em> indicating whether
+ * the task is scheduled, running, done, etc.
+ *
+ * @see SD_task_t, SD_task_dependency_management
+ * @{
+ */
+SD_task_t SD_task_create(const char *name, void *data, double amount);
+void* SD_task_get_data(SD_task_t task);
+void SD_task_set_data(SD_task_t task, void *data);
+e_SD_task_state_t SD_task_get_state(SD_task_t task);
+const char* SD_task_get_name(SD_task_t task);
+double SD_task_get_amount(SD_task_t task);
+double SD_task_get_remaining_amount(SD_task_t task);
+void SD_task_watch(SD_task_t task, e_SD_task_state_t state);
+void SD_task_unwatch(SD_task_t task, e_SD_task_state_t state);
+void SD_task_schedule(SD_task_t task, int workstation_nb,
+ const SD_workstation_t *workstation_list, double *computation_amount,