X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/c771a55e40d2a41d607a0da1b67cd1f7d546ccc8..51a92ed1069b6790ae4d3910f1c3b445e96963d3:/hostdata.h diff --git a/hostdata.h b/hostdata.h index 82e133f..703b7a1 100644 --- a/hostdata.h +++ b/hostdata.h @@ -2,28 +2,35 @@ #define HOSTDATA_H #include +#include #include +// 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 hosts; + struct m_host_less; const char* name; std::string ctrl_mbox; std::string data_mbox; + }; #endif // !HOSTDATA_H