Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Set up documentation for simix
[simgrid.git] / doc / module-msg.doc
index cd7ae3a..3df79fe 100644 (file)
       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 m_file_management
-   - \ref msg_actions_functions
-   - \ref msg_gos_functions
+   - \ref msg_file_management
+   - \ref msg_task_usage
+   - \ref msg_trace_driven
    - \ref msg_deprecated_functions
-   - \ref msg_simulation
+
 
   Also make sure to visit the page @ref MSG_examples.
 */
@@ -30,6 +30,8 @@
 @defgroup MSG_examples MSG Examples
 @ingroup MSG_API
  
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Examples" --> @endhtmlonly
+
 MSG comes with an extensive set of examples. It is sometimes difficult
 to find the one you need. This list aims at helping you finding the
 example from which you can learn what you want to.
@@ -56,15 +58,7 @@ details).
  -# Cleanup the library with #MSG_clean before ending your program
     (optional).
 
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Simulation control" --> @endhtmlonly
-*/
-
-
-/** @defgroup m_datatypes_management MSG Data Types 
-    @ingroup MSG_API
-    @brief This section describes the different datatypes provided by MSG.
-    
-    \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Data types" --> \endhtmlonly
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Simulation Control" --> @endhtmlonly
 */
 
 /** @defgroup m_process_management Process Management Functions 
@@ -81,26 +75,50 @@ details).
 /** @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 m_file_management File Management Functions
+/** @defgroup msg_task_usage Task Actions
+ *  @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
- *         (#m_file_t) and the functions for managing it. It
+ *         (#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
+@brief This section describes the functions allowing to build trace-driven simulations.
+
+\htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Trace-Driven" --> \endhtmlonly
+
+This is very handy when you want to test an algorithm or protocol that
+does nothing unless it receives some events from outside. For example,
+a P2P protocol reacts to requests from the user, but does nothing if
+there is no such event. 
+      
+In such situations, SimGrid allows to write your protocol in your C
+file, and the events to react to in a separate text file. Declare a
+function handling each of the events that you want to accept in your
+trace files, register them using #MSG_action_register in your main,
+and then use #MSG_action_trace_run to launch the simulation. You can
+either have one trace file containing all your events, or a file per
+simulated process. 
+        
+Check the examples in <b>examples/msg/actions/actions.c</b> for details.
  
-/** @defgroup msg_actions_functions Managing actions
- *  @ingroup MSG_API
- *  @brief This section describes functions for managing actions.
  */ 
 
-/** @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.
- */
  
  
 /**