namespace s4u {
class As;
class Host;
+ class Mailbox;
}
namespace surf {
class Resource;
}
}
-typedef simgrid::s4u::Host simgrid_Host;
typedef simgrid::s4u::As simgrid_As;
+typedef simgrid::s4u::Host simgrid_Host;
+typedef simgrid::s4u::Mailbox simgrid_Mailbox;
typedef simgrid::surf::Cpu surf_Cpu;
typedef simgrid::surf::NetCard surf_NetCard;
typedef simgrid::surf::Link Link;
#else
-typedef struct simgrid_Host simgrid_Host;
typedef struct simgrid_As simgrid_As;
+typedef struct simgrid_Host simgrid_Host;
+typedef struct simgrid_Mailbox simgrid_Mailbox;
typedef struct surf_Cpu surf_Cpu;
typedef struct surf_NetCard surf_NetCard;
typedef struct surf_Resource surf_Resource;
typedef struct Trace tmgr_Trace;
#endif
-typedef simgrid_Host* sg_host_t;
typedef simgrid_As *AS_t;
+typedef simgrid_Host* sg_host_t;
+typedef simgrid_Mailbox* sg_mbox_t;
typedef surf_Cpu *surf_cpu_t;
typedef surf_NetCard *sg_netcard_t;
public:
/** Retrieve the mailbox associated to the given string */
static Mailbox *byName(const char *name);
+ /** Returns whether the mailbox contains queued communications */
+ bool empty();
private:
smx_mailbox_t inferior_;
#endif
+XBT_PUBLIC(sg_mbox_t) sg_mbox_by_name(const char*name);
+XBT_PUBLIC(int) sg_mbox_is_empty(sg_mbox_t mbox);
+
#endif /* SIMGRID_S4U_MAILBOX_HPP */
}
return res;
}
+
+bool s4u::Mailbox::empty() {
+ return nullptr == simcall_mbox_get_head(inferior_);
+}
+
+sg_mbox_t sg_mbox_by_name(const char*name){
+ return s4u::Mailbox::byName(name);
+}
+int sg_mbox_is_empty(sg_mbox_t mbox) {
+ return mbox->empty();
+}