-#include "network.hpp"
+/* Copyright (c) 2013-2021. The SimGrid Team.
+ * All rights reserved. */
-/***********
- * Classes *
- ***********/
+/* 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. */
-class NetworkSmpiModel;
-typedef NetworkSmpiModel *NetworkSmpiModelPtr;
+#ifndef SIMGRID_SURF_NETWORK_SMPI_HPP
+#define SIMGRID_SURF_NETWORK_SMPI_HPP
-/*********
- * Tools *
- *********/
+#include <xbt/base.h>
-/*********
- * Model *
- *********/
+#include "network_cm02.hpp"
-class NetworkSmpiModel : public NetworkCm02Model {
-public:
- NetworkSmpiModel() : NetworkCm02Model() {m_haveGap=true;};
- void gapAppend(double size, const NetworkCm02LinkLmmPtr link, NetworkCm02ActionLmmPtr action);
- void gapRemove(ActionLmmPtr action);
- double latencyFactor(double size);
- double bandwidthFactor(double size);
- double bandwidthConstraint(double rate, double bound, double size);
- void communicateCallBack() {};
-};
-
-
-/************
- * Resource *
- ************/
+namespace simgrid {
+namespace kernel {
+namespace resource {
+class XBT_PRIVATE NetworkSmpiModel : public NetworkCm02Model {
+public:
+ using NetworkCm02Model::NetworkCm02Model;
-/**********
- * Action *
- **********/
-
+ double get_latency_factor(double size) override;
+ double get_bandwidth_factor(double size) override;
+protected:
+ void check_lat_factor_cb() override;
+ void check_bw_factor_cb() override;
+};
+} // namespace resource
+} // namespace kernel
+} // namespace simgrid
+#endif