Link* Link::set_latency(double value)
{
- kernel::actor::simcall([this, value] { pimpl_->set_latency(value); });
+ kernel::actor::simcall_object_access(pimpl_, [this, value] { pimpl_->set_latency(value); });
return this;
}
try {
d_value = xbt_parse_get_time("", 0, value, "");
} catch (const simgrid::ParseError&) {
- throw std::invalid_argument(std::string("Impossible to set latency for link: ") + get_name() +
- std::string(". Invalid value: ") + value);
+ throw std::invalid_argument("Impossible to set latency for link: " + get_name() + ". Invalid value: " + value);
}
return set_latency(d_value);
}
Link* Link::set_bandwidth(double value)
{
- kernel::actor::simcall([this, value] { pimpl_->set_bandwidth(value); });
+ kernel::actor::simcall_object_access(pimpl_, [this, value] { pimpl_->set_bandwidth(value); });
return this;
}
Link* Link::set_sharing_policy(Link::SharingPolicy policy, const NonLinearResourceCb& cb)
{
if (policy == SharingPolicy::SPLITDUPLEX || policy == SharingPolicy::WIFI)
- throw std::invalid_argument(std::string("Impossible to set wifi or split-duplex for the link: ") + get_name() +
- std::string(". Use appropriate create function in NetZone."));
+ throw std::invalid_argument("Impossible to set wifi or split-duplex for the link: " + get_name() +
+ ". Use appropriate create function in NetZone.");
- kernel::actor::simcall([this, policy, &cb] { pimpl_->set_sharing_policy(policy, cb); });
+ kernel::actor::simcall_object_access(pimpl_, [this, policy, &cb] { pimpl_->set_sharing_policy(policy, cb); });
return this;
}
Link::SharingPolicy Link::get_sharing_policy() const
Link* Link::set_concurrency_limit(int limit)
{
- kernel::actor::simcall([this, limit] { pimpl_->set_concurrency_limit(limit); });
+ kernel::actor::simcall_object_access(pimpl_, [this, limit] { pimpl_->set_concurrency_limit(limit); });
return this;
}
void Link::turn_on()
{
- kernel::actor::simcall([this]() { this->pimpl_->turn_on(); });
+ kernel::actor::simcall_answered([this]() { this->pimpl_->turn_on(); });
}
void Link::turn_off()
{
- kernel::actor::simcall([this]() { this->pimpl_->turn_off(); });
+ kernel::actor::simcall_answered([this]() { this->pimpl_->turn_off(); });
}
Link* Link::seal()
{
- kernel::actor::simcall([this]() { this->pimpl_->seal(); });
+ kernel::actor::simcall_answered([this]() { this->pimpl_->seal(); });
s4u::Link::on_creation(*this); // notify the signal
return this;
}
Link* Link::set_state_profile(kernel::profile::Profile* profile)
{
xbt_assert(not pimpl_->is_sealed(), "Cannot set a state profile once the Link is sealed");
- kernel::actor::simcall([this, profile]() { this->pimpl_->set_state_profile(profile); });
+ kernel::actor::simcall_object_access(pimpl_, [this, profile]() { this->pimpl_->set_state_profile(profile); });
return this;
}
Link* Link::set_bandwidth_profile(kernel::profile::Profile* profile)
{
xbt_assert(not pimpl_->is_sealed(), "Cannot set a bandwidth profile once the Link is sealed");
- kernel::actor::simcall([this, profile]() { this->pimpl_->set_bandwidth_profile(profile); });
+ kernel::actor::simcall_object_access(pimpl_, [this, profile]() { this->pimpl_->set_bandwidth_profile(profile); });
return this;
}
Link* Link::set_latency_profile(kernel::profile::Profile* profile)
{
xbt_assert(not pimpl_->is_sealed(), "Cannot set a latency profile once the Link is sealed");
- kernel::actor::simcall([this, profile]() { this->pimpl_->set_latency_profile(profile); });
+ kernel::actor::simcall_object_access(pimpl_, [this, profile]() { this->pimpl_->set_latency_profile(profile); });
return this;
}
}
Link* Link::set_property(const std::string& key, const std::string& value)
{
- kernel::actor::simcall([this, &key, &value] { this->pimpl_->set_property(key, value); });
+ kernel::actor::simcall_object_access(pimpl_, [this, &key, &value] { this->pimpl_->set_property(key, value); });
return this;
}
Link* Link::set_properties(const std::unordered_map<std::string, std::string>& properties)
{
- kernel::actor::simcall([this, &properties] { this->pimpl_->set_properties(properties); });
+ kernel::actor::simcall_object_access(pimpl_, [this, &properties] { this->pimpl_->set_properties(properties); });
return this;
}
void* sg_link_get_data(const_sg_link_t link)
{
- return link->get_data();
+ return link->get_data<void>();
}
void sg_link_set_data(sg_link_t link, void* data)