Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Concatenate nested namespaces (sonar).
[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::smpi {
17
18 class Host {
19   std::vector<s_smpi_factor_t> orecv_parsed_values;
20   std::vector<s_smpi_factor_t> osend_parsed_values;
21   std::vector<s_smpi_factor_t> oisend_parsed_values;
22   s4u::Host* host = nullptr;
23   /**
24    * @brief Generates warning message if user's config is conflicting (callback vs command line/xml)
25    * @param op String with config name (smpi/os, smpi/or, smpi/ois)
26    */
27   void check_factor_configs(const std::string& op) const;
28
29 public:
30   static xbt::Extension<s4u::Host, smpi::Host> EXTENSION_ID;
31
32   explicit Host(s4u::Host* ptr);
33
34   double orecv(size_t size, s4u::Host* src, s4u::Host* dst);
35   double osend(size_t size, s4u::Host* src, s4u::Host* dst);
36   double oisend(size_t size, s4u::Host* src, s4u::Host* dst);
37 };
38
39 } // namespace simgrid::smpi
40 #endif