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

Private GIT Repository
b75633a4fecd4497e3ab404352dc6bd6785d9fa4
[loba.git] / hostdata.cpp
1 #include "hostdata.h"
2
3 #include <xbt/log.h>
4 #include <stdexcept>
5
6 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(main);
7
8 hostdata* hostdata::instances = NULL;
9
10 void hostdata::create()
11 {
12     int nhosts = MSG_get_host_number();
13     m_host_t* host_list = MSG_get_host_table();
14     VERB1("Got %d hosts.", nhosts);
15     for (int i = 0; i < nhosts; i++) {
16         hostdata* h = new hostdata(host_list[i]);
17         MSG_host_set_data(host_list[i], h);
18         VERB2("Host #%d named \"%s\".", i, h->get_name());
19         h->next = instances;
20         instances = h;
21     }
22     xbt_free(host_list);
23 }
24
25 void hostdata::destroy()
26 {
27     while (instances) {
28         hostdata* h = instances;
29         instances = h->next;
30         delete h;
31     }
32 }
33
34 hostdata::hostdata(m_host_t host)
35     : next(NULL)
36     , name(MSG_host_get_name(host))
37     , ctrl_mbox(std::string(name) + "_ctrl")
38     , data_mbox(std::string(name) + "_data")
39 {
40 }
41
42 hostdata::~hostdata()
43 {
44 }