using namespace simgrid;
s4u::Actor::Actor(smx_process_t smx_proc) {
- p_smx_process = smx_proc;
+ inferior_ = smx_proc;
}
s4u::Actor::Actor(const char *name, s4u::Host *host, int argc, char **argv)
: s4u::Actor::Actor(name,host, argc,argv, -1) {
}
s4u::Actor::Actor(const char *name, s4u::Host *host, int argc, char **argv, double killTime) {
- p_smx_process = simcall_process_create(name, s4u_actor_runner, this, host->name().c_str(), killTime, argc, argv, NULL/*properties*/,0);
+ inferior_ = simcall_process_create(name, s4u_actor_runner, this, host->name().c_str(), killTime, argc, argv, NULL/*properties*/,0);
- xbt_assert(p_smx_process,"Cannot create the actor");
+ xbt_assert(inferior_,"Cannot create the actor");
// TRACE_msg_process_create(procname, simcall_process_get_PID(p_smx_process), host->getInferior());
// simcall_process_on_exit(p_smx_process,(int_f_pvoid_pvoid_t)TRACE_msg_process_kill,p_smx_process);
}
}
void s4u::Actor::setAutoRestart(bool autorestart) {
- simcall_process_auto_restart_set(p_smx_process,autorestart);
+ simcall_process_auto_restart_set(inferior_,autorestart);
}
s4u::Host *s4u::Actor::getHost() {
- return s4u::Host::by_name(sg_host_get_name(simcall_process_get_host(p_smx_process)));
+ return s4u::Host::by_name(sg_host_get_name(simcall_process_get_host(inferior_)));
}
const char* s4u::Actor::getName() {
- return simcall_process_get_name(p_smx_process);
+ return simcall_process_get_name(inferior_);
}
int s4u::Actor::getPid(){
- return simcall_process_get_PID(p_smx_process);
+ return simcall_process_get_PID(inferior_);
}
void s4u::Actor::setKillTime(double time) {
- simcall_process_set_kill_time(p_smx_process,time);
+ simcall_process_set_kill_time(inferior_,time);
}
double s4u::Actor::getKillTime() {
- return simcall_process_get_kill_time(p_smx_process);
+ return simcall_process_get_kill_time(inferior_);
}
void s4u::Actor::killAll() {
simcall_process_killall(1);
}
void s4u::Actor::kill() {
- simcall_process_kill(p_smx_process);
+ simcall_process_kill(inferior_);
}
void s4u::Actor::sleep(double duration) {
}
void s4u::Comm::setRate(double rate) {
- xbt_assert(p_state==inited);
+ xbt_assert(state_==inited);
rate_ = rate;
}
void s4u::Comm::setSrcData(void * buff) {
- xbt_assert(p_state==inited);
+ xbt_assert(state_==inited);
xbt_assert(dstBuff_ == NULL, "Cannot set the src and dst buffers at the same time");
srcBuff_ = buff;
}
void s4u::Comm::setSrcDataSize(size_t size){
- xbt_assert(p_state==inited);
+ xbt_assert(state_==inited);
srcBuffSize_ = size;
}
void s4u::Comm::setSrcData(void * buff, size_t size) {
- xbt_assert(p_state==inited);
+ xbt_assert(state_==inited);
xbt_assert(dstBuff_ == NULL, "Cannot set the src and dst buffers at the same time");
srcBuff_ = buff;
srcBuffSize_ = size;
}
void s4u::Comm::setDstData(void ** buff) {
- xbt_assert(p_state==inited);
+ xbt_assert(state_==inited);
xbt_assert(srcBuff_ == NULL, "Cannot set the src and dst buffers at the same time");
dstBuff_ = buff;
}
size_t s4u::Comm::getDstDataSize(){
- xbt_assert(p_state==finished);
+ xbt_assert(state_==finished);
return dstBuffSize_;
}
void s4u::Comm::setDstData(void ** buff, size_t size) {
- xbt_assert(p_state==inited);
+ xbt_assert(state_==inited);
xbt_assert(srcBuff_ == NULL, "Cannot set the src and dst buffers at the same time");
dstBuff_ = buff;
}
void s4u::Comm::start() {
- xbt_assert(p_state == inited);
+ xbt_assert(state_ == inited);
if (srcBuff_ != NULL) { // Sender side
- p_inferior = simcall_comm_isend(sender_->getInferior(), mailbox_->getInferior(), p_remains, rate_,
+ inferior_ = simcall_comm_isend(sender_->getInferior(), mailbox_->getInferior(), remains_, rate_,
srcBuff_, srcBuffSize_,
matchFunction_, cleanFunction_, copyDataFunction_,
- p_userData, detached_);
+ userData_, detached_);
} else if (dstBuff_ != NULL) { // Receiver side
- p_inferior = simcall_comm_irecv(receiver_->getInferior(), mailbox_->getInferior(), dstBuff_, &dstBuffSize_,
+ inferior_ = simcall_comm_irecv(receiver_->getInferior(), mailbox_->getInferior(), dstBuff_, &dstBuffSize_,
matchFunction_, copyDataFunction_,
- p_userData, rate_);
+ userData_, rate_);
} else {
xbt_die("Cannot start a communication before specifying whether we are the sender or the receiver");
}
- p_state = started;
+ state_ = started;
}
void s4u::Comm::wait() {
- xbt_assert(p_state == started || p_state == inited);
+ xbt_assert(state_ == started || state_ == inited);
- if (p_state == started)
- simcall_comm_wait(p_inferior, -1/*timeout*/);
+ if (state_ == started)
+ simcall_comm_wait(inferior_, -1/*timeout*/);
else {// p_state == inited. Save a simcall and do directly a blocking send/recv
if (srcBuff_ != NULL) {
- simcall_comm_send(sender_->getInferior(), mailbox_->getInferior(), p_remains, rate_,
+ simcall_comm_send(sender_->getInferior(), mailbox_->getInferior(), remains_, rate_,
srcBuff_, srcBuffSize_,
matchFunction_, copyDataFunction_,
- p_userData, -1 /*timeout*/);
+ userData_, -1 /*timeout*/);
} else {
simcall_comm_recv(receiver_->getInferior(), mailbox_->getInferior(), dstBuff_, &dstBuffSize_,
matchFunction_, copyDataFunction_,
- p_userData, -1/*timeout*/, rate_);
+ userData_, -1/*timeout*/, rate_);
}
}
- p_state = finished;
+ state_ = finished;
}
void s4u::Comm::wait(double timeout) {
- xbt_assert(p_state == started || p_state == inited);
+ xbt_assert(state_ == started || state_ == inited);
- if (p_state == started) {
- simcall_comm_wait(p_inferior, timeout);
- p_state = finished;
+ if (state_ == started) {
+ simcall_comm_wait(inferior_, timeout);
+ state_ = finished;
return;
}
// It's not started yet. Do it in one simcall
if (srcBuff_ != NULL) {
- simcall_comm_send(sender_->getInferior(), mailbox_->getInferior(), p_remains, rate_,
+ simcall_comm_send(sender_->getInferior(), mailbox_->getInferior(), remains_, rate_,
srcBuff_, srcBuffSize_,
matchFunction_, copyDataFunction_,
- p_userData, timeout);
+ userData_, timeout);
} else { // Receiver
simcall_comm_recv(receiver_->getInferior(), mailbox_->getInferior(), dstBuff_, &dstBuffSize_,
matchFunction_, copyDataFunction_,
- p_userData, timeout, rate_);
+ userData_, timeout, rate_);
}
- p_state = finished;
+ state_ = finished;
}
s4u::Comm &s4u::Comm::send_async(s4u::Actor *sender, Mailbox &dest, void *data, int simulatedSize) {