Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
d746dd305f616266eaf1bbfa19b405b426b67f04
[simgrid.git] / src / smpi / SmpiHost.hpp
1 #ifndef SMPI_HOST_HPP_
2 #define SMPI_HOST_HPP_
3
4 #include "src/include/smpi/smpi_utils.hpp"
5
6 #include <simgrid/s4u/host.hpp>
7 #include <string>
8 #include <vector>
9 #include <xbt/config.hpp>
10 #include <xbt/Extendable.hpp>
11
12
13
14 namespace simgrid {
15 namespace smpi {
16
17 void sg_smpi_host_init();
18 static void onHostDestruction(simgrid::s4u::Host& host);
19 static void onCreation(simgrid::s4u::Host& host);
20
21 class SmpiHost {
22
23   private:
24   std::vector<s_smpi_factor_t> orecv_parsed_values;
25   std::vector<s_smpi_factor_t> osend_parsed_values;
26   std::vector<s_smpi_factor_t> oisend_parsed_values;
27   simgrid::s4u::Host *host = nullptr;
28
29   public:
30   static simgrid::xbt::Extension<simgrid::s4u::Host, SmpiHost> EXTENSION_ID;
31
32   explicit SmpiHost(simgrid::s4u::Host *ptr);
33   ~SmpiHost();
34
35   double orecv(size_t size);
36   double osend(size_t size);
37   double oisend(size_t size);
38 };
39
40 }
41 }
42 #endif