/* 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. */
-#ifndef S4U_LINK_HPP_
-#define S4U_LINK_HPP_
+#ifndef S4U_LINK_HPP
+#define S4U_LINK_HPP
#include <simgrid/forward.h>
#include <simgrid/kernel/resource/Action.hpp>
***********/
namespace simgrid {
+
+extern template class XBT_PUBLIC xbt::Extendable<s4u::Link>;
+
namespace s4u {
-/** @brief A Link represents the network facilities between [hosts](@ref simgrid::s4u::Host) */
+/**
+ * @rst
+ * A Link represents the network facilities between :cpp:class:`hosts <simgrid::s4u::Host>`.
+ * @endrst
+ */
class XBT_PUBLIC Link : public xbt::Extendable<Link> {
friend kernel::resource::LinkImpl;
/** @brief Get the bandwidth in bytes per second of current Link */
double get_bandwidth() const;
+ void set_bandwidth(double value);
/** @brief Get the latency in seconds of current Link */
double get_latency() const;
+ void set_latency(double value);
/** @brief Describes how the link is shared between flows */
SharingPolicy get_sharing_policy() const;
static xbt::signal<void(Link const&)> on_bandwidth_change;
/** @brief Callback signal fired when a communication starts */
- static xbt::signal<void(kernel::resource::NetworkAction&, Host* src, Host* dst)> on_communicate;
+ static xbt::signal<void(kernel::resource::NetworkAction&)> on_communicate;
/** @brief Callback signal fired when a communication changes it state (ready/done/cancel) */
static xbt::signal<void(kernel::resource::NetworkAction&, kernel::resource::Action::State)>
} // namespace s4u
} // namespace simgrid
-#endif /* SURF_NETWORK_INTERFACE_HPP_ */
+#endif /* S4U_LINK_HPP */