X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/546888e0918a3cda4cd2ffb5786f67dda3883a81..2ca35a707044d033c33cb4f016e6ffddfded0d05:/src/simix/smx_network_private.h diff --git a/src/simix/smx_network_private.h b/src/simix/smx_network_private.h index 6eaa039956..fb1e1cf447 100644 --- a/src/simix/smx_network_private.h +++ b/src/simix/smx_network_private.h @@ -8,18 +8,39 @@ #define _SIMIX_NETWORK_PRIVATE_H #include +#include + +#include + #include +#include + #include "simgrid/simix.h" #include "popping_private.h" +#include "src/simix/smx_process_private.h" + +namespace simgrid { +namespace simix { /** @brief Rendez-vous point datatype */ -typedef struct s_smx_mailbox { - char *name; - std::deque *comm_queue; - smx_process_t permanent_receiver; //process which the mailbox is attached to - std::deque *done_comm_queue;//messages already received in the permanent receive mode -} s_smx_mailbox_t; + +class Mailbox { +public: + Mailbox(const char* name) : piface_(this), name(xbt_strdup(name)) {} + ~Mailbox() { + xbt_free(name); + } + + simgrid::s4u::Mailbox piface_; // Our interface + char* name; + std::deque comm_queue; + boost::intrusive_ptr permanent_receiver; //process which the mailbox is attached to + std::deque done_comm_queue;//messages already received in the permanent receive mode +}; + +} +} XBT_PRIVATE void SIMIX_mailbox_exit(void); @@ -37,4 +58,3 @@ XBT_PRIVATE smx_synchro_t SIMIX_comm_iprobe(smx_process_t dst_proc, smx_mailbox_ int tag, int (*match_fun)(void *, void *, smx_synchro_t), void *data); #endif -