Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2022.
[simgrid.git] / src / smpi / include / smpi_host.hpp
1 /* Copyright (c) 2017-2022. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #ifndef SMPI_HOST_HPP_
7 #define SMPI_HOST_HPP_
8
9 #include "smpi_utils.hpp"
10
11 #include "simgrid/s4u/Host.hpp"
12 #include <string>
13 #include <vector>
14 #include <xbt/Extendable.hpp>
15
16 namespace simgrid {
17 namespace smpi {
18
19 class Host {
20   std::vector<s_smpi_factor_t> orecv_parsed_values;
21   std::vector<s_smpi_factor_t> osend_parsed_values;
22   std::vector<s_smpi_factor_t> oisend_parsed_values;
23   s4u::Host* host = nullptr;
24   /**
25    * @brief Generates warning message if user's config is conflicting (callback vs command line/xml)
26    * @param op String with config name (smpi/os, smpi/or, smpi/ois)
27    */
28   void check_factor_configs(const std::string& op) const;
29
30 public:
31   static xbt::Extension<s4u::Host, smpi::Host> EXTENSION_ID;
32
33   explicit Host(s4u::Host* ptr);
34
35   double orecv(size_t size, s4u::Host* src, s4u::Host* dst);
36   double osend(size_t size, s4u::Host* src, s4u::Host* dst);
37   double oisend(size_t size, s4u::Host* src, s4u::Host* dst);
38 };
39
40 }
41 }
42 #endif