+/** \ingroup m_task_management
+ * \brief Returns the remaining computation amount of a task #m_task_t.
+ *
+ */
+double MSG_task_get_remaining_computation(m_task_t task)
+{
+ xbt_assert0((task != NULL)
+ && (task->simdata != NULL), "Invalid parameter");
+
+ if (task->simdata->compute) {
+ return SIMIX_action_get_remains(task->simdata->compute);
+ } else {
+ return task->simdata->computation_amount;
+ }
+}
+
+/** \ingroup m_task_management
+ * \brief Returns the total amount received by a task #m_task_t.
+ *
+ */
+double MSG_task_get_remaining_communication(m_task_t task)
+{
+ xbt_assert0((task != NULL)
+ && (task->simdata != NULL), "Invalid parameter");
+ DEBUG1("calling SIMIX_communication_get_remains(%p)", task->simdata->comm);
+ return SIMIX_communication_get_remains(task->simdata->comm);
+}
+
+/** \ingroup m_task_management
+ * \brief Return 1 if communication task is limited by latency, 0 otherwise
+ *
+ */
+int MSG_task_is_latency_bounded(m_task_t task)
+{
+ xbt_assert0((task != NULL)
+ && (task->simdata != NULL), "Invalid parameter");
+ DEBUG1("calling SIMIX_communication_is_latency_bounded(%p)", task->simdata->comm);
+ return SIMIX_communication_is_latency_bounded(task->simdata->comm);
+}
+