#define HOSTDATA_H
#include <string>
+#include <vector>
#include <msg/msg.h>
+// Helper class that associates instances of itself with each host.
+// Facilitate global operations on hosts, and retreiving of host name
+// and mailboxes.
class hostdata {
public:
static void create();
static void destroy();
+ static size_t size() { return hosts.size(); }
+ static const hostdata& at(size_t i) { return hosts[i]; }
hostdata(m_host_t host);
~hostdata();
- const char* get_name() const { return name; }
+ const char* get_name() const { return name; }
const char* get_ctrl_mbox() const { return ctrl_mbox.c_str(); }
const char* get_data_mbox() const { return data_mbox.c_str(); }
private:
- // linked list of hostdata's, used by create/destroy
- static hostdata* instances;
- hostdata* next;
+ // static list of hostdata's, used by create/destroy
+ static std::vector<hostdata> hosts;
const char* name;
std::string ctrl_mbox;
std::string data_mbox;
+
};
#endif // !HOSTDATA_H