X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/88f37b6fb2e255b82a42d81005ecb4d40a96fc82..5d038603f775914afc8c6f35eff53f3682802f5b:/src/msg/mailbox.h diff --git a/src/msg/mailbox.h b/src/msg/mailbox.h index 640e7abc2e..f8053a57da 100644 --- a/src/msg/mailbox.h +++ b/src/msg/mailbox.h @@ -1,22 +1,19 @@ +/* Copyright (c) 2008, 2009, 2010. The SimGrid Team. + * All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + #ifndef SMX_MAILBOX_H #define SMX_MAILBOX_H #include "xbt/fifo.h" -#include "simix/private.h" +#include "simix/simix.h" #include "msg/datatypes.h" + SG_BEGIN_DECL() #define MAX_ALIAS_NAME ((size_t)260) -/* - * Initialization of the mailbox module. - */ -void MSG_mailbox_mod_init(void); - -/* - * Terminaison of the mailbox module. - */ -void MSG_mailbox_mod_exit(void); - /*! \brief MSG_mailbox_new - create a new mailbox. * @@ -24,10 +21,11 @@ void 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. */ -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. * @@ -37,7 +35,7 @@ msg_mailbox_t MSG_mailbox_new(const char *alias); * this type of mailbox is associated with a channel. * * \param alias The alias of the mailbox to create. - * + * * \return The newly created mailbox. */ msg_mailbox_t MSG_mailbox_create(const char *alias); @@ -64,7 +62,8 @@ void MSG_mailbox_free(void *mailbox); * \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. * @@ -77,66 +76,10 @@ msg_mailbox_t MSG_mailbox_get_by_alias(const char *alias); * * \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); - -/*! \brief MSG_mailbox_get_alias - get the alias associated with the mailbox. - * - * The function MSG_mailbox_get_alias returns the alias of the mailbox specified - * by the parameter mailbox. - * - * \param mailbox The mailbox to get the alias. - * - * \return The alias of the mailbox specified by the parameter mailbox. - */ -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. - * - * \param mailbox The mailbox to get the condition. - * - * \return The simix condition of the mailbox specified by the parameter mailbox. - */ -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. - * - * \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(msg_mailbox_t) + MSG_mailbox_get_by_channel(m_host_t host, m_channel_t channel); /*! \brief MSG_mailbox_is_empty - test if a mailbox is empty. * @@ -148,25 +91,7 @@ void MSG_mailbox_set_hostname(msg_mailbox_t mailbox, const char *hostname); * \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. * @@ -178,35 +103,10 @@ void MSG_mailbox_remove(msg_mailbox_t mailbox, m_task_t task); * * \return The task at the head of the mailbox. */ -m_task_t MSG_mailbox_get_head(msg_mailbox_t mailbox); +XBT_PUBLIC(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. - */ -m_task_t MSG_mailbox_pop_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. @@ -217,11 +117,10 @@ MSG_mailbox_get_first_host_task(msg_mailbox_t mailbox, m_host_t host); * parameter mailbox and sended by all the processes located * on the host specified by the parameter host. */ -int +XBT_PUBLIC(int) MSG_mailbox_get_count_host_waiting_tasks(msg_mailbox_t mailbox, - m_host_t host); + m_host_t host); SG_END_DECL() - -#endif /* !SMX_MAILBOX_H */ +#endif /* !SMX_MAILBOX_H */