Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
please sonar
[simgrid.git] / src / smpi / include / smpi_info.hpp
1 /* Copyright (c) 2009-2010, 2012-2017. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef SMPI_INFO_HPP
8 #define SMPI_INFO_HPP
9
10 #include "smpi/smpi.h"
11 #include "smpi_f2c.hpp"
12 #include <unordered_map>
13
14 namespace simgrid{
15 namespace smpi{
16
17 class Info : public F2C{
18   private:
19     std::unordered_map<std::string, std::string> map_;
20     int refcount_ = 1;
21
22   public:
23     Info() = default;
24     explicit Info(Info* orig);
25     ~Info() = default;
26     void ref();
27     static void unref(MPI_Info info);
28     void set(char *key, char *value);
29     int get(char *key,int valuelen, char *value, int *flag);
30     int remove(char* key);
31     int get_nkeys(int *nkeys);
32     int get_nthkey(int n, char *key);
33     int get_valuelen(char *key, int *valuelen, int *flag);
34     static Info* f2c(int id);
35 };
36
37 }
38 }
39
40 #endif