e_s4u_activity_state_t getState() {return state_;}
/** Get the remaining amount of work that this Activity entails. When it's 0, it's done. */
- size_t getRemains();
+ double getRemains();
/** Set the [remaining] amount of work that this Activity will entail
*
* It is forbidden to change the amount of work once the Activity is started */
- void setRemains(size_t remains);
+ void setRemains(double remains);
/** Put some user data onto the Activity */
void setUserData(void *data) {userData_=data;}
private:
simgrid::kernel::activity::ActivityImplPtr pimpl_ = nullptr;
e_s4u_activity_state_t state_ = inited;
- size_t remains_ = 0;
+ double remains_ = 0;
void *userData_ = nullptr;
}; // class
/** Creates (but don't start) an emission to that mailbox */
CommPtr put_init();
/** Creates (but don't start) an emission to that mailbox */
- CommPtr put_init(void* payload, size_t simulatedSizeInBytes);
+ CommPtr put_init(void* data, int simulatedByteAmount);
/** Creates and start an async emission to that mailbox */
- CommPtr put_async(void* payload, size_t simulatedSizeInBytes);
+ CommPtr put_async(void* data, int simulatedByteAmount);
- /** Blocking emission
- *
- * There is no deep-copy of the payload; the pointer is just copied to the receiving actor.
- */
- void put(void* payload, size_t simulatedSizeInBytes);
- /** Blocking emission with timeout */
- void put(void* payload, size_t simulatedSizeInBytes, double timeout);
+ /** Blocking put */
+ void put(void* payload, double simulatedSize);
+ /** Blocking put with timeout */
+ void put(void* payload, double simulatedSize, double timeout);
/** Creates (but don't start) a reception onto that mailbox */
CommPtr get_init();
/************************** Comunication simcalls *****************************/
XBT_PUBLIC(void)
-simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, size_t task_size, double rate, void* src_buff,
+simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
size_t src_buff_size, int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
void (*copy_data_fun)(smx_activity_t, void*, size_t), void* data, double timeout);
XBT_PUBLIC(smx_activity_t)
-simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, size_t task_size, double rate, void* src_buff,
+simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
size_t src_buff_size, int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
void (*clean_fun)(void*), void (*copy_data_fun)(smx_activity_t, void*, size_t), void* data,
int detached);
namespace simgrid {
namespace s4u {
-void Activity::setRemains(size_t remains)
-{
+void Activity::setRemains(double remains) {
xbt_assert(state_ == inited, "Cannot change the remaining amount of work once the Activity is started");
remains_ = remains;
}
res->mailbox_ = this;
return res;
}
-s4u::CommPtr Mailbox::put_init(void* data, size_t simulatedSize)
+s4u::CommPtr Mailbox::put_init(void* data, int simulatedSize)
{
s4u::CommPtr res = put_init();
res->setRemains(simulatedSize);
res->srcBuffSize_ = sizeof(void*);
return res;
}
-s4u::CommPtr Mailbox::put_async(void* data, size_t simulatedSize)
+s4u::CommPtr Mailbox::put_async(void* data, int simulatedSize)
{
s4u::CommPtr res = put_init(data, simulatedSize);
res->start();
return res;
}
-void Mailbox::put(void* payload, size_t simulatedSize)
+void Mailbox::put(void* payload, double simulatedSize)
{
CommPtr c = put_init();
c->setRemains(simulatedSize);
c->wait();
}
/** Blocking send with timeout */
-void Mailbox::put(void* payload, size_t simulatedSize, double timeout)
+void Mailbox::put(void* payload, double simulatedSize, double timeout)
{
CommPtr c = put_init();
c->setRemains(simulatedSize);
/**
* \ingroup simix_comm_management
*/
-void simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, size_t task_size, double rate, void* src_buff,
+void simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
size_t src_buff_size, int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
void (*copy_data_fun)(smx_activity_t, void*, size_t), void* data, double timeout)
{
/**
* \ingroup simix_comm_management
*/
-smx_activity_t simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, size_t task_size, double rate, void* src_buff,
+smx_activity_t simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
size_t src_buff_size,
int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
void (*clean_fun)(void*), void (*copy_data_fun)(smx_activity_t, void*, size_t),