#include <boost/property_tree/ptree.hpp>
#include <map>
#include <random>
-#include <simgrid/kernel/resource/NetworkModelIntf.hpp>
#include <simgrid/s4u.hpp>
#include <smpi/smpi.h>
namespace sg4 = simgrid::s4u;
static std::mt19937 gen(42); // remove it from stack, since we need it after this this load_platform function is over
/* setting network factors callbacks */
- simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
+ auto zone = e.get_netzone_root();
SegmentedRegression seg = read_json_file("pingpong_ckmeans.json", gen, false);
- model->set_lat_factor_cb(std::bind(&latency_factor_cb, lat_base, seg, std::placeholders::_1, std::placeholders::_2,
- std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
-
- model->set_bw_factor_cb(std::bind(&bw_factor_cb, bw_base, seg, std::placeholders::_1, std::placeholders::_2,
+ zone->set_lat_factor_cb(std::bind(&latency_factor_cb, lat_base, seg, std::placeholders::_1, std::placeholders::_2,
std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
+ zone->set_bw_factor_cb(std::bind(&bw_factor_cb, bw_base, seg, std::placeholders::_1, std::placeholders::_2,
+ std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
+
seg = read_json_file("send_ckmeans.json", gen);
smpi_register_op_cost_callback(SmpiOperation::SEND, std::bind(&smpi_cost_cb, seg, std::placeholders::_1,
std::placeholders::_2, std::placeholders::_3));
#include <boost/property_tree/ptree.hpp>
#include <map>
#include <random>
-#include <simgrid/kernel/resource/NetworkModelIntf.hpp>
#include <simgrid/s4u.hpp>
#include <smpi/smpi.h>
namespace sg4 = simgrid::s4u;
static std::mt19937 gen(42); // remove it from stack, since we need it after this this load_platform function is over
/* setting network factors callbacks */
- simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
- SegmentedRegression seg = read_json_file("pingpong_dhist.json", gen, false);
- model->set_lat_factor_cb(std::bind(&latency_factor_cb, lat_base, seg, std::placeholders::_1, std::placeholders::_2,
- std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
-
- model->set_bw_factor_cb(std::bind(&bw_factor_cb, bw_base, seg, std::placeholders::_1, std::placeholders::_2,
+ auto* zone = e.get_netzone_root();
+ SegmentedRegression seg = read_json_file("pingpong_dhist.json", gen, false);
+ zone->set_lat_factor_cb(std::bind(&latency_factor_cb, lat_base, seg, std::placeholders::_1, std::placeholders::_2,
std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
+ zone->set_bw_factor_cb(std::bind(&bw_factor_cb, bw_base, seg, std::placeholders::_1, std::placeholders::_2,
+ std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
+
seg = read_json_file("send_dhist.json", gen);
smpi_register_op_cost_callback(SmpiOperation::SEND, std::bind(&smpi_cost_cb, seg, std::placeholders::_1,
std::placeholders::_2, std::placeholders::_3));
class HostImpl;
class HostModel;
class NetworkModel;
-class NetworkModelIntf;
class LinkImpl;
class StandardLinkImpl;
class SplitDuplexLinkImpl;
s4u::SplitDuplexLink* create_split_duplex_link(const std::string& name, const std::string& bandwidth);
s4u::SplitDuplexLink* create_split_duplex_link(const std::string& name, double bandwidth);
- kernel::resource::NetworkModelIntf* get_network_model() const;
+ kernel::resource::NetworkModel* get_network_model() const;
/**
* @brief Make a router within that NetZone
* @brief SURF network model interface class
* @details A model is an object which handles the interactions between its Resources and its Actions
*/
-class NetworkModel : public Model, public NetworkModelIntf {
+class NetworkModel : public Model, public NetworkModelFactors {
public:
static config::Flag<double> cfg_tcp_gamma;
static config::Flag<bool> cfg_crosstraffic;
}
#endif
-void NetworkModelIntf::set_lat_factor_cb(const std::function<NetworkFactorCb>& cb)
+void NetworkModelFactors::set_lat_factor_cb(const std::function<NetworkFactorCb>& cb)
{
if (not cb)
throw std::invalid_argument("NetworkModelFactors: Invalid callback");
lat_factor_cb_ = cb;
}
-void NetworkModelIntf::set_bw_factor_cb(const std::function<NetworkFactorCb>& cb)
+void NetworkModelFactors::set_bw_factor_cb(const std::function<NetworkFactorCb>& cb)
{
if (not cb)
throw std::invalid_argument("NetworkModelFactors: Invalid callback");
/** @ingroup SURF_interface
* @brief Network Model interface class
*/
-class XBT_PUBLIC NetworkModelIntf {
+class XBT_PUBLIC NetworkModelFactors {
using NetworkFactorCb = double(double size, const s4u::Host* src, const s4u::Host* dst,
const std::vector<s4u::Link*>& links,
const std::unordered_set<s4u::NetZone*>& netzones);
return 1.0;
}
-TEST_CASE("kernel::resource::NetworkModelIntf: Factors invalid callbacks: exception", "")
+TEST_CASE("kernel::resource::NetworkModelFactors: Factors invalid callbacks: exception", "")
{
std::vector<std::string> models{"LV08", "CM02"};
#if HAVE_SMPI
SECTION("Model: " + model)
{
- simgrid::kernel::resource::NetworkModelIntf* m = e.get_netzone_root()->get_network_model();
- REQUIRE_THROWS_AS(m->set_lat_factor_cb({}), std::invalid_argument);
- REQUIRE_THROWS_AS(m->set_lat_factor_cb(nullptr), std::invalid_argument);
- REQUIRE_THROWS_AS(m->set_bw_factor_cb({}), std::invalid_argument);
- REQUIRE_THROWS_AS(m->set_bw_factor_cb(nullptr), std::invalid_argument);
+ auto zone = e.get_netzone_root();
+ REQUIRE_THROWS_AS(zone->set_latency_factor_cb({}), std::invalid_argument);
+ REQUIRE_THROWS_AS(zone->set_latency_factor_cb(nullptr), std::invalid_argument);
+ REQUIRE_THROWS_AS(zone->set_bandwidth_factor_cb({}), std::invalid_argument);
+ REQUIRE_THROWS_AS(zone->set_bandwidth_factor_cb(nullptr), std::invalid_argument);
}
}
}
-TEST_CASE("kernel::resource::NetworkModelIntf: Invalid network/latency-factor and network/bandwidth-factor", "")
+TEST_CASE("kernel::resource::NetworkModelFactors: Invalid network/latency-factor and network/bandwidth-factor", "")
{
std::vector<std::string> models{"LV08", "CM02"};
#if HAVE_SMPI
SECTION("Model: " + model)
{
- simgrid::kernel::resource::NetworkModelIntf* m = e.get_netzone_root()->get_network_model();
- REQUIRE_THROWS_AS(m->set_lat_factor_cb(factor_cb), std::invalid_argument);
- REQUIRE_THROWS_AS(m->set_bw_factor_cb(factor_cb), std::invalid_argument);
+ auto zone = e.get_netzone_root();
+ REQUIRE_THROWS_AS(zone->set_latency_factor_cb(factor_cb), std::invalid_argument);
+ REQUIRE_THROWS_AS(zone->set_bandwidth_factor_cb(factor_cb), std::invalid_argument);
}
}
}
return pimpl_->get_netpoint();
}
-kernel::resource::NetworkModelIntf* NetZone::get_network_model() const
+kernel::resource::NetworkModel* NetZone::get_network_model() const
{
- kernel::resource::NetworkModelIntf* model = pimpl_->get_network_model().get();
- return model;
+ return pimpl_->get_network_model().get();
}
} // namespace simgrid::s4u