A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
include cleanups in src/s4u
[simgrid.git]
/
src
/
s4u
/
s4u_Link.cpp
diff --git
a/src/s4u/s4u_Link.cpp
b/src/s4u/s4u_Link.cpp
index
2e2a3ba
..
493d5c4
100644
(file)
--- a/
src/s4u/s4u_Link.cpp
+++ b/
src/s4u/s4u_Link.cpp
@@
-3,18
+3,16
@@
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-#include <algorithm>
+#include <simgrid/Exception.hpp>
+#include <simgrid/s4u/Engine.hpp>
+#include <simgrid/s4u/Link.hpp>
+#include <simgrid/sg_config.hpp>
+#include <simgrid/simix.hpp>
+#include <xbt/parse_units.hpp>
-#include "simgrid/Exception.hpp"
-#include "simgrid/s4u/Engine.hpp"
-#include "simgrid/s4u/Link.hpp"
-#include "simgrid/sg_config.hpp"
-#include "simgrid/simix.hpp"
#include "src/surf/SplitDuplexLinkImpl.hpp"
#include "src/surf/network_interface.hpp"
#include "src/surf/network_wifi.hpp"
#include "src/surf/SplitDuplexLinkImpl.hpp"
#include "src/surf/network_interface.hpp"
#include "src/surf/network_wifi.hpp"
-#include "xbt/log.h"
-#include "xbt/parse_units.hpp"
namespace simgrid {
namespace simgrid {
@@
-102,13
+100,13
@@
Link* Link::set_bandwidth(double value)
return this;
}
return this;
}
-Link* Link::set_sharing_policy(Link::SharingPolicy policy)
+Link* Link::set_sharing_policy(Link::SharingPolicy policy
, const NonLinearResourceCb& cb
)
{
{
- if (policy == SharingPolicy::SPLITDUPLEX)
- throw std::invalid_argument(std::string("Impossible to set split-duplex for the link: ") + get_name() +
- std::string(". Use
NetZone::create_split_duplex_link
."));
+ 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
."));
- kernel::actor::simcall([this, policy
] { pimpl_->set_sharing_policy(policy
); });
+ kernel::actor::simcall([this, policy
, &cb] { pimpl_->set_sharing_policy(policy, cb
); });
return this;
}
Link::SharingPolicy Link::get_sharing_policy() const
return this;
}
Link::SharingPolicy Link::get_sharing_policy() const
@@
-145,6
+143,7
@@
void Link::turn_off()
Link* Link::seal()
{
kernel::actor::simcall([this]() { this->pimpl_->seal(); });
Link* Link::seal()
{
kernel::actor::simcall([this]() { this->pimpl_->seal(); });
+ s4u::Link::on_creation(*this); // notify the signal
return this;
}
return this;
}