Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove the deprecated 'state' attribute from the doc
[simgrid.git] / doc / doxygen / module-surf.doc
index e4aed28..d041a49 100644 (file)
@@ -1,83 +1,82 @@
-/** \addtogroup SURF_API
+/** @addtogroup SURF_API
   
-  \section SURF_doc Surf documentation
+  @section SURF_doc Surf documentation
    Surf is composed several components:
-   - \ref SURF_simulation
-   - \ref SURF_build_api
-   - \ref SURF_c_bindings
-   - \ref SURF_interface
-   - \ref SURF_routing_interface
-   - \ref SURF_cpu_interface
-   - \ref SURF_network_interface
-   - \ref SURF_storage_interface
-   - \ref SURF_workstation_interface
-   - \ref SURF_vm_workstation_interface
-   - \ref SURF_lmm
-   - \ref SURF_callbacks
-   - \ref SURF_plugin_energy
+   - @ref SURF_simulation
+   - @ref SURF_models
+   - @ref SURF_build_api
+   - @ref SURF_c_bindings
+   - @ref SURF_interface
+   - @ref SURF_cpu_interface
+   - @ref SURF_network_interface
+   - @ref SURF_storage_interface
+   - @ref SURF_host_interface
+   - @ref SURF_vm_interface
+   - @ref SURF_lmm
+   - @ref SURF_callbacks
+   - @ref plugin_energy
    
 
 */
 
-/** \defgroup SURF_simulation Simulation
-    \ingroup SURF_API
-    \brief Functions for creating the environment and launching the simulation
+/** @defgroup SURF_models Simulation Models
+    @ingroup SURF_API
+    @brief Functions to declare the kind of models that you want to use
+    */
 
-    This section describes the functions for initialising SURF, performing
+/** @defgroup SURF_simulation Simulation
+    @ingroup SURF_API
+    @brief Functions for creating the environment and launching the simulation
+
+    This section describes the functions for initializing SURF, performing
     the simulation and exiting SURF.
 */
 
-/** \defgroup SURF_build_api Create a new API
-    \ingroup SURF_API
-    \brief How to build a new API on top of SURF
+/** @defgroup SURF_build_api Create a new API
+    @ingroup SURF_API
+    @brief How to build a new API on top of SURF
 
-    SURF provides the functionnalities to simulate the platform. There are two main datatypes in SURF:
+    SURF provides the functionalities to simulate the platform. There are two main data types in SURF:
     the actions and the resources. Several types of resources exist:
-       - the workstation resource,
+       - the host resource,
        - the network resource,
        - the CPU resource,
        - the timer resource.
 
-    The implentation of these resources depends on the platform model you choose. There are several
-    platform models. You can select your model by calling surf_workstation_resource_init_CLM03()
-    or surf_workstation_resource_init_KCCFLN05(). See the documentation of these functions to have
-    more details about the models. Remember that the model KCCFLN05 is an implementation of both the
-    workstation resource and the network.
-
-    Typically, your functions should call the SURF functions provided by the structures
-    \a surf_workstation_resource->common_public and \a surf_workstation_resource->extension_public.
-    See surf_resource_public and surf_workstation_resource_extension_public to know the available functions.
+    The implementation of these resources depends on the platform
+    models you choose.  You can select your model by calling
+    #surf_host_model_init_current_default() (which will give you a
+    CLM03 model), or similar (see @ref SURF_models).
 
-    To initialize SURF, call surf_init(). Then call surf_timer_resource_init() and
-    surf_workstation_resource_init_CLM03() or surf_workstation_resource_init_KCCFLN05()
+    To initialize SURF, call #surf_init(). Then
+    #surf_host_model_init_current_default() or #surf_host_model_init_ptask_L07() 
     to create the platform.
 
-    Then you can access the workstations and the network links with
-    the global variables \ref host_lib
-    and \ref link_lib. Some functions in \a surf_workstation_resource->extension_public can give
+    Then you can access the hosts with the @ref simgrid::s4u::Engine::get_all_hosts.
+    Some functions of the @ref SURF_host_interface and similar can give
     you some information about:
-       - a workstation: get_speed(), get_available_speed();
+       - a host: get_speed(), get_available_speed();
        - a network link: get_link_name(), get_link_latency(), get_link_bandwith();
        - a route: get_route(), get_route_size().
 
-    During the simulation, call \a surf_workstation_resource->extension_public->execute() to schedule a
-    computation task on a workstation, or \a surf_workstation_resource->extension_public->communicate()
-    to schedule a communication task between two workstations. You can also create parallel task
-    with \a surf_workstation_resource->extension_public->execute_parallel_task(). These functions return
+    During the simulation, call @a surf_host_model->execute() to schedule a
+    computation task on a host, or @a surf_host_model->communicate()
+    to schedule a communication task between two hosts. You can also create parallel task
+    with @a surf_host_model->extension_public->execute_parallel_task(). These functions return
     a new action that represents the task you have just created.
 
-    To execute the actions created with \a execute(), \a communicate() or \a execute_parallel_task(), call
+    To execute the actions created with @a execute(), @a communicate() or @a execute_parallel_task(), call
     surf_solve(). The function surf_solve() is where the simulation takes place. It returns the
     time elapsed to execute the actions. You can know what actions have changed their state thanks
     to the states sets. For example, if your want to know what actions are finished,
-    extract them from \a surf_workstation_resource->common_public->states.done_action_set.
+    extract them from @a surf_host_model->common_public->states.done_action_set.
     Depending on these results, you can schedule other tasks and call surf_solve() again.
 
     When the simulation is over, just call surf_exit() to clean the memory.
 
-    Have a look at the implementation of \ref MSG_API "MSG" and \ref SD_API "Simdag" to see how these module
+    Have a look at the implementation of @ref MSG_API "MSG" and @ref SD_API "Simdag" to see how these module
     interact with SURF. But if you want to create a new API on top of SURF,
-    we strongly recommand you to contact us before anyway.
+    we strongly recommend you to contact us before anyway.
 
 */
 
 @defgroup SURF_c_bindings   SURF C bindings
 @ingroup SURF_API
 @brief Describes the c bindings of SURF
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Surf C bindings" --> @endhtmlonly
 */
 
 /**
 @defgroup SURF_interface   SURF Interface
 @ingroup SURF_API
-@brief Describes the general interface for all components (Cpu, Network, Storage, Workstation, WorkstationVM)
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Surf Interface" --> @endhtmlonly
-*/
-
-/**
-@defgroup SURF_routing_interface   SURF Routing Interface
-@ingroup SURF_API
-@brief Describes the routing interface
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Surf Routing" --> @endhtmlonly
+@brief Describes the general interface for all components (Cpu, Network, Storage, Host, VM)
 */
 
 /**
 @defgroup SURF_cpu_interface   SURF Cpu Interface
 @ingroup SURF_API
 @brief Describes the general Cpu interface for all Cpu implementations
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Cpu Interface" --> @endhtmlonly
 */
 
 /**
 @defgroup SURF_network_interface   SURF Network Interface
 @ingroup SURF_API
 @brief Describes the general Network interface for all Network implementations
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Network Interface" --> @endhtmlonly
 */
 
 /**
 @defgroup SURF_storage_interface   SURF Storage Interface
 @ingroup SURF_API
 @brief Describes the general  interface for all Storage implementations
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Storage Interface" --> @endhtmlonly
 */
 
 /**
-@defgroup SURF_workstation_interface   SURF Workstation Interface
+@defgroup SURF_host_interface   SURF Host Interface
 @ingroup SURF_API
-@brief Describes the general  interface for all Workstation implementations
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Workstation Interface" --> @endhtmlonly
+@brief Describes the general  interface for all Host implementations
 */
 
 /**
-@defgroup SURF_vm_workstation_interface   SURF VM Workstation Interface
+@defgroup SURF_vm_interface   SURF VM Interface
 @ingroup SURF_API
-@brief Describes the general  interface for all VM Workstation implementations
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="VM Workstation Interface" --> @endhtmlonly
+@brief Describes the general  interface for all VM implementations
 */
 
 /**
 @defgroup SURF_lmm   SURF Linear MaxMin
 @ingroup SURF_API
 @brief Describes how the linear MaxMin system work
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="SURF Linear MaxMin" --> @endhtmlonly
 */
 
 /**
 @defgroup SURF_callbacks   SURF callbacks
 @ingroup SURF_API
 @brief Describes how to use the SURF callbacks
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="SURF callbacks" --> @endhtmlonly
 */
 
 /**
-@defgroup SURF_plugin_energy   SURF Energy Plugin
+@defgroup plugin_energy   Energy Plugin
 @ingroup SURF_API
 @brief Describes how to use the energy plugin.
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Energy plugin" --> @endhtmlonly
 */