]> AND Private Git Repository - loba.git/blob - hostdata.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Use new defined variadic logging macros.
[loba.git] / hostdata.h
1 #ifndef HOSTDATA_H
2 #define HOSTDATA_H
3
4 #include <string>
5 #include <vector>
6 #include <msg/msg.h>
7
8 // Helper class that associates instances of itself with each host.
9 // Facilitate global operations on hosts, and retreiving of host name
10 // and mailboxes.
11 class hostdata {
12 public:
13     static void create();
14     static void destroy();
15     static size_t size()                        { return hosts.size(); }
16     static const hostdata& at(size_t i)         { return hosts[i];     }
17
18     hostdata(m_host_t host);
19     ~hostdata();
20
21     const char* get_name() const                { return name;              }
22     const char* get_ctrl_mbox() const           { return ctrl_mbox.c_str(); }
23     const char* get_data_mbox() const           { return data_mbox.c_str(); }
24
25 private:
26     // static list of hostdata's, used by create/destroy
27     static std::vector<hostdata> hosts;
28     struct m_host_less;
29
30     const char* name;
31     std::string ctrl_mbox;
32     std::string data_mbox;
33
34 };
35
36 #endif // !HOSTDATA_H
37
38 // Local variables:
39 // mode: c++
40 // End: