return new LinkNS3(this, name, properties, bandwidth, latency);
}
-Action *NetworkNS3Model::communicate(simgrid::kernel::routing::NetCard *src,simgrid::kernel::routing::NetCard *dst, double size, double rate)
+Action* NetworkNS3Model::communicate(s4u::Host* src, s4u::Host* dst, double size, double rate)
{
return new NetworkNS3Action(this, size, src, dst);
}
std::vector<Link*> *route = new std::vector<Link*>();
- routing_platf->getRouteAndLatency (action->src_, action->dst_, route, nullptr);
+ routing_platf->getRouteAndLatency(action->src_->pimpl_netcard, action->dst_->pimpl_netcard, route, nullptr);
for (auto link : *route)
TRACE_surf_link_set_utilization (link->getName(), action->getCategory(), (data_delta_sent)/delta, now-delta, delta);
delete route;
* Action *
**********/
-NetworkNS3Action::NetworkNS3Action(Model *model, double size, simgrid::kernel::routing::NetCard *src, simgrid::kernel::routing::NetCard *dst)
-: NetworkAction(model, size, false)
+NetworkNS3Action::NetworkNS3Action(Model* model, double size, s4u::Host* src, s4u::Host* dst)
+ : NetworkAction(model, size, false)
{
- XBT_DEBUG("Communicate from %s to %s", src->name(), dst->name());
+ XBT_DEBUG("Communicate from %s to %s", src->name().c_str(), dst->name().c_str());
src_ = src;
dst_ = dst;
- ns3_create_flow(src->name(), dst->name(), surf_get_clock(), size, this);
+ ns3_create_flow(src->name().c_str(), dst->name().c_str(), surf_get_clock(), size, this);
Link::onCommunicate(this, src, dst);
}
~NetworkNS3Model();
Link* createLink(const char *name, double bandwidth, double latency,
e_surf_link_sharing_policy_t policy, xbt_dict_t properties) override;
- Action *communicate(kernel::routing::NetCard *src, kernel::routing::NetCard *dst, double size, double rate);
+ Action* communicate(s4u::Host* src, s4u::Host* dst, double size, double rate) override;
double nextOccuringEvent(double now) override;
bool nextOccuringEventIsIdempotent() {return false;}
void updateActionsState(double now, double delta) override;
**********/
class XBT_PRIVATE NetworkNS3Action : public NetworkAction {
public:
- NetworkNS3Action(Model *model, double cost, kernel::routing::NetCard *src, kernel::routing::NetCard *dst);
+ NetworkNS3Action(Model* model, double cost, s4u::Host* src, s4u::Host* dst);
bool isSuspended();
int unref();
//private:
double lastSent_ = 0;
- kernel::routing::NetCard *src_;
- kernel::routing::NetCard *dst_;
+ s4u::Host* src_;
+ s4u::Host* dst_;
};
}