class Cluster {
public:
explicit Cluster(Server serv, uint16_t cnt = 0);
-
+ explicit Cluster(vector<Server> servers);
~Cluster();
Cluster(const Cluster &c) = delete;
Cluster &operator=(const Cluster &c) = delete;
- Cluster(Cluster &&c)
+ Cluster(Cluster &&c) noexcept
: proto{} {
*this = move(c);
};
- Cluster &operator=(Cluster &&c) {
+ Cluster &operator=(Cluster &&c) noexcept {
count = exchange(c.count, 0);
proto = exchange(c.proto, Server{});
cluster = exchange(c.cluster, {});
bool start();
void stop();
- void reset();
bool isStopped();
bool isListening();
void wait();
private:
- uint16_t count;
+ size_t count;
Server proto;
vector<Server> cluster;
map<pid_t, Server *> pids;