Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Taking into account last SURF modifications (suspend, resume and is_suspended moved...
[simgrid.git] / include / msg / datatypes.h
index 7d01a0d..db4b38a 100644 (file)
 
 /********************************* Host **************************************/
 
-struct s_m_host {
+typedef struct simdata_host *simdata_host_t;
+typedef struct m_host {
   char *name;                  /* host name if any */
-  void *simdata;               /* simulator data */
+  simdata_host_t simdata;      /* simulator data */
   void *data;                  /* user data */
-};
+} s_m_host_t;
 /** \brief Host datatype  
     \ingroup m_datatypes_management
 
@@ -27,32 +28,17 @@ struct s_m_host {
 
     \see m_host_management
 */
-typedef struct s_m_host *m_host_t;
-
-/********************************* Link **************************************/
-struct s_m_link {
-  char *name;                  /* link name if any */
-  void *simdata;               /* simulator data */
-  void *data;                  /* user data */
-};
-
-/** \brief Link datatype  
-    \ingroup m_datatypes_management
-
-    A <em>link</em> is an agglomeration of communicating resources
-    representing a set of physical network links.
-
-    \see m_link_management
-*/
-typedef struct s_m_link *m_link_t;
+typedef s_m_host_t *m_host_t;
 
 /********************************* Task **************************************/
 
-struct s_m_task {
+typedef struct simdata_task *simdata_task_t;
+typedef struct m_task {
   char *name;                  /* host name if any */
-  void *simdata;               /* simulator data */
+  simdata_task_t simdata;      /* simulator data */
   void *data;                  /* user data */
-};
+} s_m_task_t;
+
 /** \brief Task datatype  
     \ingroup m_datatypes_management 
 
@@ -61,26 +47,27 @@ struct s_m_task {
     data</em>.
     \see m_task_management
 */
-typedef struct s_m_task *m_task_t;
+typedef s_m_task_t *m_task_t;
 
 /** \brief Default value for an uninitialized #m_task_t.
     \ingroup m_datatypes_management 
 */
 #define MSG_TASK_UNINITIALIZED NULL
-/******************************* Process *************************************/
 
-struct s_m_process {
+/******************************* Process *************************************/
+typedef struct simdata_process *simdata_process_t;
+typedef struct m_process {
   char *name;                  /* process name if any */
-  void *simdata;               /* simulator data */
+  simdata_process_t simdata;   /* simulator data */
   void *data;                  /* user data */
-};
+} s_m_process_t;
 /** \brief Agent datatype  
     \ingroup m_datatypes_management 
     An agent may be defined as a <em>code</em>, with some <em>private
     data</em>, executing in a <em>location</em>.
     \see m_process_management
 */
-typedef struct s_m_process *m_process_t;
+typedef s_m_process_t *m_process_t;
 /** \brief Agent code datatype  
     \ingroup m_datatypes_management 
     The code of an agent is a m_process_code_t, i.e. a function with no arguments 
@@ -124,4 +111,22 @@ typedef enum {
   MSG_TCP
 } MSG_sharing_t;
 
+/************************ deprecated *****************************************/
+/* /\********************************* Link **************************************\/ */
+/* struct s_m_link { */
+/*   char *name;                       /\* link name if any *\/ */
+/*   void *simdata;            /\* simulator data *\/ */
+/*   void *data;                       /\* user data *\/ */
+/* }; */
+
+/* /\** \brief Link datatype   */
+/*     \ingroup m_datatypes_management */
+
+/*     A <em>link</em> is an agglomeration of communicating resources */
+/*     representing a set of physical network links. */
+
+/*     \see m_link_management */
+/* *\/ */
+/* typedef struct s_m_link *m_link_t; */
+
 #endif