*/
class NetworkModel : public Model {
public:
- static simgrid::config::Flag<double> cfg_tcp_gamma;
- static simgrid::config::Flag<bool> cfg_crosstraffic;
+ static config::Flag<double> cfg_tcp_gamma;
+ static config::Flag<bool> cfg_crosstraffic;
explicit NetworkModel(Model::UpdateAlgo algo) : Model(algo) {}
NetworkModel(const NetworkModel&) = delete;
/**
* @brief Create a communication between two hosts.
- * @details It makes calls to the routing part, and execute the communication
- * between the two end points.
+ * @details It makes calls to the routing part, and execute the communication between the two end points.
*
* @param src The source of the communication
* @param dst The destination of the communication
* @param size The size of the communication in bytes
- * @param rate Allows to limit the transfer rate. Negative value means
- * unlimited.
+ * @param rate Allows to limit the transfer rate. Negative value means unlimited.
* @return The action representing the communication
*/
virtual Action* communicate(s4u::Host* src, s4u::Host* dst, double size, double rate) = 0;
/**
* @brief Get the right multiplicative factor for the latency.
- * @details Depending on the model, the effective latency when sending
- * a message might be different from the theoretical latency of the link,
- * in function of the message size. In order to account for this, this
- * function gets this factor.
+ * @details Depending on the model, the effective latency when sending a message might be different from the
+ * theoretical latency of the link, in function of the message size. In order to account for this, this function gets
+ * this factor.
*
* @param size The size of the message.
* @return The latency factor.
/**
* @brief Get the right multiplicative factor for the bandwidth.
- * @details Depending on the model, the effective bandwidth when sending
- * a message might be different from the theoretical bandwidth of the link,
- * in function of the message size. In order to account for this, this
- * function gets this factor.
+ * @details Depending on the model, the effective bandwidth when sending a message might be different from the
+ * theoretical bandwidth of the link, in function of the message size. In order to account for this, this function
+ * gets this factor.
*
* @param size The size of the message.
* @return The bandwidth factor.
/**
* @brief Get definitive bandwidth.
- * @details It gives the minimum bandwidth between the one that would
- * occur if no limitation was enforced, and the one arbitrary limited.
+ * @details It gives the minimum bandwidth between the one that would occur if no limitation was enforced, and the
+ * one arbitrary limited.
* @param rate The desired maximum bandwidth.
* @param bound The bandwidth with only the network taken into account.
* @param size The size of the message.
* @brief SURF network link interface class
* @details A Link represents the link between two [hosts](@ref simgrid::surf::HostImpl)
*/
-class LinkImpl : public Resource, public simgrid::surf::PropertyHolder {
+class LinkImpl : public Resource, public surf::PropertyHolder {
+ bool currently_destroying_ = false;
+ void* userdata_ = nullptr;
+
protected:
LinkImpl(NetworkModel* model, const std::string& name, lmm::Constraint* constraint);
LinkImpl(const LinkImpl&) = delete;
public:
void destroy(); // Must be called instead of the destructor
-private:
- bool currently_destroying_ = false;
+ void* get_data() { return userdata_; }
+ void set_data(void* d) { userdata_ = d; }
-public:
/** @brief Public interface */
s4u::Link piface_;
Metric latency_ = {1.0, 0, nullptr};
Metric bandwidth_ = {1.0, 0, nullptr};
- /* User data */
- void* get_data() { return userdata_; }
- void set_data(void* d) { userdata_ = d; }
-private:
- void* userdata_ = nullptr;
};
/**********
double weight_ = {};
double rate_ = {};
};
-}
-}
+} // namespace resource
+} // namespace kernel
} // namespace simgrid
+
/** @ingroup SURF_models
* @brief The network model
*/