Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
new tracing mask TRACE_VOLUME to trace the msg tasks communication size and group...
[simgrid.git] / src / msg / mailbox.h
index dce26e4..6e577fe 100644 (file)
@@ -2,24 +2,21 @@
 #define SMX_MAILBOX_H
 
 #include "xbt/fifo.h"
-#include "simix/private.h"
+#include "simix/simix.h"
 #include "msg/datatypes.h"
 
-SG_BEGIN_DECL()
 
+SG_BEGIN_DECL()
 #define MAX_ALIAS_NAME ((size_t)260)
-
 /*
  * Initialization of the mailbox module.
  */
-void
-MSG_mailbox_mod_init(void);
+     void MSG_mailbox_mod_init(void);
 
 /*
  * Terminaison of the mailbox module.
  */
-void
-MSG_mailbox_mod_exit(void);
+     void MSG_mailbox_mod_exit(void);
 
 
 /*! \brief MSG_mailbox_new - create a new mailbox.
@@ -28,24 +25,24 @@ MSG_mailbox_mod_exit(void);
  * by the parameter alias and add it in the global dictionary.
  *
  * \param alias                The alias of the mailbox to create.
- * 
- * \return                     The newly created mailbox.
+ *
+ * \return             The newly created mailbox.
  */
-msg_mailbox_t
-MSG_mailbox_new(const char *alias);
+XBT_PUBLIC(msg_mailbox_t)
+  MSG_mailbox_new(const char *alias);
 
 /*! \brief MSG_mailbox_create - create a new mailbox.
  *
- * The function MSG_mailbox_new creates a new mailbox identified by the key specified
- * by the parameter alias and add it in the global dictionary but doesn't add it in
- * the global dictionary. Typicaly, this type of mailbox is associated with a channel.
+ * The function MSG_mailbox_new creates a new mailbox identified by
+ * the key specified by the parameter alias and add it in the global
+ * dictionary but doesn't add it in the global dictionary. Typicaly,
+ * this type of mailbox is associated with a channel.
  *
  * \param alias                The alias of the mailbox to create.
- * 
- * \return                     The newly created mailbox.
+ *
+ * \return             The newly created mailbox.
  */
-msg_mailbox_t
-MSG_mailbox_create(const char *alias);
+     msg_mailbox_t MSG_mailbox_create(const char *alias);
 
 /* \brief MSG_mailbox_free - release a mailbox from the memory.
  *
@@ -54,10 +51,9 @@ MSG_mailbox_create(const char *alias);
  *
  * \param mailbox      The mailbox to release.
  *
- * \see                                MSG_mailbox_destroy.
+ * \see                        MSG_mailbox_destroy.
  */
-void
-MSG_mailbox_free(void* mailbox);
+     void MSG_mailbox_free(void *mailbox);
 
 /* \brief MSG_mailbox_get_by_alias - get a mailbox from its alias.
  *
@@ -67,26 +63,27 @@ MSG_mailbox_free(void* mailbox);
  *
  * \param alias                The alias of the mailbox to return.
  *
- * \return                     The mailbox associated with the alias specified as parameter
- *                                     or a new mailbox if the key does not match.
+ * \return     The mailbox associated with the alias specified as parameter
+ *             or a new mailbox if the key does not match.
  */
-msg_mailbox_t
-MSG_mailbox_get_by_alias(const char* alias);
+XBT_PUBLIC(msg_mailbox_t)
+  MSG_mailbox_get_by_alias(const char *alias);
 
 /* \brief MSG_mailbox_get_by_channel - get a mailbox of the specified host from its channel.
  *
- * The function MSG_mailbox_get_by_channel returns the mailbox of the specified host
- * from the channel specified by the parameter channel. If the mailbox does not exists,
- * the function fails.
+ * The function MSG_mailbox_get_by_channel returns the mailbox of the
+ * specified host from the channel specified by the parameter
+ * channel. If the mailbox does not exists, the function fails.
  *
  * \param host         The host containing he mailbox to get.
  * \param channel      The channel used to identify the mailbox.
  *
- * \return                     The mailbox of the specified host associated the channel specified as parameter.
- *             
+ * \return The mailbox of the specified host associated the channel
+ *         specified as parameter.
+ *
  */
-msg_mailbox_t
-MSG_mailbox_get_by_channel(m_host_t host, m_channel_t channel);
+XBT_PUBLIC(msg_mailbox_t)
+  MSG_mailbox_get_by_channel(m_host_t host, m_channel_t channel);
 
 /*! \brief MSG_mailbox_get_alias - get the alias associated with the mailbox.
  *
@@ -95,91 +92,44 @@ MSG_mailbox_get_by_channel(m_host_t host, m_channel_t channel);
  *
  * \param mailbox      The mailbox to get the alias.
  *
- * \return                     The alias of the mailbox specified by the parameter mailbox.
+ * \return     The alias of the mailbox specified by the parameter mailbox.
  */
-const char*
-MSG_mailbox_get_alias(msg_mailbox_t mailbox);
+XBT_PUBLIC(const char *) MSG_mailbox_get_alias(msg_mailbox_t mailbox);
 
 /*! \brief MSG_mailbox_get_cond - get the simix condition of a mailbox.
  *
- * The function MSG_mailbox_get_cond returns the condition of the mailbox specified
- * by the parameter mailbox.
+ * The function MSG_mailbox_get_cond returns the condition of the
+ * mailbox specified by the parameter mailbox.
  *
  * \param mailbox      The mailbox to get the condition.
  *
- * \return                     The simix condition of the mailbox specified by the parameter mailbox.
+ * \return The simix condition of the mailbox specified by the parameter mailbox.
  */
-smx_cond_t
-MSG_mailbox_get_cond(msg_mailbox_t mailbox);
+XBT_PUBLIC(smx_cond_t)
+  MSG_mailbox_get_cond(msg_mailbox_t mailbox);
 
 /*! \brief MSG_mailbox_set_cond - set the simix condition of a mailbox.
  *
- * The function MSG_mailbox_set_cond set the condition of the mailbox specified
- * by the parameter mailbox.
+ * The function MSG_mailbox_set_cond set the condition of the mailbox
+ * specified by the parameter mailbox.
  *
  * \param mailbox      The mailbox to set the condition.
  * \param cond         The new simix condition of the mailbox.
  *
  */
-void
-MSG_mailbox_set_cond(msg_mailbox_t mailbox, smx_cond_t cond);
-
-/*! \brief MSG_mailbox_get_hostname - get the name of the host owned a mailbox.
- *
- * The function MSG_mailbox_get_hostname returns name of the host owned the mailbox specified
- * by the parameter mailbox.
- *
- * \param mailbox      The mailbox to get the name of the host.
- *
- * \return                     The name of the host owned the mailbox specified by the parameter mailbox.
- */
-const char*
-MSG_mailbox_get_hostname(msg_mailbox_t mailbox);
-
-/*! \brief MSG_mailbox_set_hostname - set the name of the host owned a mailbox.
- *
- * The function MSG_mailbox_set_hostname sets the name of the host owned the mailbox specified
- * by the parameter mailbox.
- *
- * \param mailbox      The mailbox to set the name of the host.
- * \param hostname     The name of the owner of the mailbox.
- *
- */
-void
-MSG_mailbox_set_hostname(msg_mailbox_t mailbox, const char* hostname);
-
+XBT_PUBLIC(void) MSG_mailbox_set_cond(msg_mailbox_t mailbox, smx_cond_t cond);
 
 /*! \brief MSG_mailbox_is_empty - test if a mailbox is empty.
  *
- * The function MSG_mailbox_is_empty tests if a mailbox is empty (contains no msg task). 
+ * The function MSG_mailbox_is_empty tests if a mailbox is empty
+ * (contains no msg task).
  *
  * \param mailbox      The mailbox to get test.
  *
- * \return                     The function returns 1 if the mailbox is empty. Otherwise the function
- *                                     returns 0.
+ * \return     The function returns 1 if the mailbox is empty. Otherwise the function
+ *             returns 0.
  */
-int
-MSG_mailbox_is_empty(msg_mailbox_t mailbox);
-
-/*! \brief MSG_mailbox_put - put a task in a mailbox.
- *
- * The MSG_mailbox_put puts a task in a specified mailbox.
- *
- * \param mailbox      The mailbox where put the task.
- * \param task         The task to put in the mailbox.
- */
-void
-MSG_mailbox_put(msg_mailbox_t mailbox, m_task_t task);
-
-/*! \brief MSG_mailbox_remove - remove a task from a mailbox.
- *
- * The MSG_mailbox_remove removes a task from a specified mailbox.
- *
- * \param mailbox      The mailbox concerned by this operation.
- * \param task         The task to remove from the mailbox.
- */
-void
-MSG_mailbox_remove(msg_mailbox_t mailbox, m_task_t task);
+XBT_PUBLIC(int) MSG_mailbox_is_empty(msg_mailbox_t mailbox);
 
 /*! \brief MSG_mailbox_get_head - get the task at the head of a mailbox.
  *
@@ -189,55 +139,26 @@ MSG_mailbox_remove(msg_mailbox_t mailbox, m_task_t task);
  *
  * \param mailbox      The mailbox concerned by the operation.
  *
- * \return                     The task at the head of the mailbox.
- */
-m_task_t
-MSG_mailbox_get_head(msg_mailbox_t mailbox);
-
-/*! \brief MSG_mailbox_pop_head - get the task at the head of a mailbox
- * and remove it from it.
- *
- * The MSG_mailbox_pop_head returns the task at the head of the mailbox
- * and remove it from it.
- *
- * \param mailbox      The mailbox concerned by the operation.
- *
- * \return                     The task at the head of the mailbox.
+ * \return             The task at the head of the mailbox.
  */
-m_task_t
-MSG_mailbox_pop_head(msg_mailbox_t mailbox);
+XBT_PUBLIC(m_task_t)
+  MSG_mailbox_get_head(msg_mailbox_t mailbox);
 
-/*! \brief MSG_mailbox_get_first_host_task - get the first msg task
- * of a specified mailbox, sended by a process of a specified host.
- *
- * \param mailbox      The mailbox concerned by the operation.
- * \param host         The msg host of the process that has sended the
- *                                     task.
- *
- * \return                     The first task in the mailbox specified by the
- *                                     parameter mailbox and sended by a process located
- *                                     on the host specified by the parameter host.
- */
-m_task_t
-MSG_mailbox_get_first_host_task(msg_mailbox_t mailbox, m_host_t host);
-
-/*! \brief MSG_mailbox_get_count_host_waiting_tasks - Return the number of tasks 
+/*! \brief MSG_mailbox_get_count_host_waiting_tasks - Return the number of tasks
    waiting to be received in a mailbox and sent by a host.
  *
  * \param mailbox      The mailbox concerned by the operation.
  * \param host         The msg host containing the processes that have sended the
- *                                     tasks.
+ *                     tasks.
  *
- * \return                     The number of tasks in the mailbox specified by the
- *                                     parameter mailbox and sended by all the processes located
- *                                     on the host specified by the parameter host.
+ * \return             The number of tasks in the mailbox specified by the
+ *                     parameter mailbox and sended by all the processes located
+ *                     on the host specified by the parameter host.
  */
-int
-MSG_mailbox_get_count_host_waiting_tasks(msg_mailbox_t mailbox, m_host_t host);
+XBT_PUBLIC(int)
+MSG_mailbox_get_count_host_waiting_tasks(msg_mailbox_t mailbox,
+                                         m_host_t host);
 
 
 SG_END_DECL()
-
-
 #endif /* !SMX_MAILBOX_H */
-