#include "src/kernel/resource/NetworkModel.hpp"
-namespace simgrid {
-namespace s4u {
+namespace simgrid::s4u {
xbt::signal<void(NetZone const&)> NetZone::on_creation;
xbt::signal<void(NetZone const&)> NetZone::on_seal;
return pimpl_->get_all_hosts();
}
-int NetZone::get_host_count() const
+size_t NetZone::get_host_count() const
{
return pimpl_->get_host_count();
}
kernel::actor::simcall_answered([this] { pimpl_->seal(); });
return this;
}
+void NetZone::set_latency_factor_cb(
+ std::function<double(double size, const s4u::Host* src, const s4u::Host* dst,
+ const std::vector<s4u::Link*>& /*links*/,
+ const std::unordered_set<s4u::NetZone*>& /*netzones*/)> const& cb)
+{
+ kernel::actor::simcall_answered([this, &cb]() { pimpl_->get_network_model()->set_lat_factor_cb(cb); });
+}
+void NetZone::set_bandwidth_factor_cb(
+ std::function<double(double size, const s4u::Host* src, const s4u::Host* dst,
+ const std::vector<s4u::Link*>& /*links*/,
+ const std::unordered_set<s4u::NetZone*>& /*netzones*/)> const& cb)
+{
+ kernel::actor::simcall_answered([this, &cb]() { pimpl_->get_network_model()->set_bw_factor_cb(cb); });
+}
s4u::Host* NetZone::create_host(const std::string& name, double speed)
{
kernel::resource::NetworkModelIntf* model = pimpl_->get_network_model().get();
return model;
}
-} // namespace s4u
-} // namespace simgrid
+} // namespace simgrid::s4u
/* **************************** Public C interface *************************** */