the documentation provided in the relevant packages.
\section MSG_funct Offered functionnalities
+ - \ref msg_simulation
- \ref m_process_management
- \ref m_datatypes_management
- \ref m_host_management
- \ref m_task_management
- \ref msg_file_management
+ - \ref msg_task_usage
- \ref msg_trace_driven
- - \ref msg_gos_functions
- \ref msg_deprecated_functions
- - \ref msg_simulation
+
Also make sure to visit the page @ref MSG_examples.
*/
/** @defgroup m_task_management Task Management Functions
* @ingroup MSG_API
* @brief This section describes the task structure of MSG
- * (#m_task_t) and the functions for managing it.
+ * (#m_task_t) and the functions for managing it. See
+ * \ref msg_task_usage to see how to put the tasks in action.
+ *
+ * \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Tasks" --> \endhtmlonly
*/
- /** @defgroup msg_file_management File Management Functions
+/** @defgroup msg_task_usage Task Usage
+ * @ingroup MSG_API
+ * @brief This section describes the functions that can be used
+ * by a process to execute, communicate or otherwise handle some task.
+ */
+
+/** @defgroup msg_file_management File Management Functions
* @ingroup MSG_API
* @brief This section describes the file structure of MSG
* (#msg_file_t) and the functions for managing it. It
* is based on POSIX functions.
*/
-
+
+
/**
@defgroup msg_trace_driven Trace-driven simulations
@ingroup MSG_API
*/
-/** @defgroup msg_gos_functions MSG Operating System Functions
- * @ingroup MSG_API
- * @brief This section describes the functions that can be used
- * by a process for handling some task.
- */
/**
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_gos, msg,
"Logging specific to MSG (gos)");
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Executes a task and waits for its termination.
*
* This function is used for describing the behavior of a process. It
return task;
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Executes a parallel task and waits for its termination.
*
* \param task a #m_task_t to execute on the location on which the process is running.
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Sleep for the specified number of seconds
*
* Makes the current process sleep until \a time seconds have elapsed.
}
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Receives a task from a mailbox from a specific host.
*
* This is a blocking function, the execution flow will be blocked
return MSG_task_receive_ext(task, alias, -1, host);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Receives a task from a mailbox.
*
* This is a blocking function, the execution flow will be blocked
return MSG_task_receive_with_timeout(task, alias, -1);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Receives a task from a mailbox with a given timeout.
*
* This is a blocking function with a timeout, the execution flow will be blocked
return MSG_task_receive_ext(task, alias, timeout, NULL);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Receives a task from a mailbox from a specific host with a given timeout.
*
* This is a blocking function with a timeout, the execution flow will be blocked
host, timeout);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Sends a task on a mailbox.
*
* This is a non blocking function: use MSG_comm_wait() or MSG_comm_test()
return MSG_task_isend_with_matching(task,alias,NULL,NULL);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Sends a task on a mailbox, with support for matching requests
*
* This is a non blocking function: use MSG_comm_wait() or MSG_comm_test()
return comm;
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Sends a task on a mailbox.
*
* This is a non blocking detached send function.
t_simdata->comm = comm;
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Starts listening for receiving a task from an asynchronous communication.
*
* This is a non blocking function: use MSG_comm_wait() or MSG_comm_test()
return comm;
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Checks whether a communication is done, and if yes, finalizes it.
* \param comm the communication to test
* \return TRUE if the communication is finished
return finished;
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief This function checks if a communication is finished.
* \param comms a vector of communications
* \return the position of the finished communication if any
return finished_index;
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Destroys a communication.
* \param comm the communication to destroy.
*/
xbt_free(comm);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Wait for the completion of a communication.
*
* It takes two parameters.
return comm->status;
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief This function is called by a sender and permit to wait for each communication
*
* \param comm a vector of communication
}
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief This function waits for the first communication finished in a list.
* \param comms a vector of communications
* \return the position of the first finished communication
}
/**
- * \ingroup msg_gos_functions
+ * \ingroup msg_task_usage
* \brief Returns the error (if any) that occured during a finished communication.
* \param comm a finished communication
* \return the status of the communication, or #MSG_OK if no error occured
return comm->status;
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Get a task (#m_task_t) from a communication
*
* \param comm the communication where to get the task
}
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Sends a task to a mailbox
*
* This is a blocking function, the execution flow will be blocked
return MSG_task_send_with_timeout(task, alias, -1);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Sends a task to a mailbox with a maximum rate
*
* This is a blocking function, the execution flow will be blocked
return MSG_task_send(task, alias);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Sends a task to a mailbox with a timeout
*
* This is a blocking function, the execution flow will be blocked
task, timeout);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Check if there is a communication going on in a mailbox.
*
* \param alias the name of the mailbox to be considered
return !MSG_mailbox_is_empty(MSG_mailbox_get_by_alias(alias));
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Check the number of communication actions of a given host pending in a mailbox.
*
* \param alias the name of the mailbox to be considered
(alias), host);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Look if there is a communication on a mailbox and return the
* PID of the sender process.
*
return MSG_process_get_PID(task->simdata->sender);
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
* \brief Sets the tracing category of a task.
*
* This function should be called after the creation of
#endif
}
-/** \ingroup msg_gos_functions
+/** \ingroup msg_task_usage
*
* \brief Gets the current tracing category of a task.
*