class Cluster {
public:
- explicit Cluster(Server serv, uint16_t cnt = 0);
- explicit Cluster(vector<Server> servers);
+ explicit Cluster(Server serv, size_t cnt = 3);
~Cluster();
Cluster(const Cluster &c) = delete;
const vector<Server> &getServers() const;
bool start();
- void stop();
+ void stop(bool graceful = false);
bool isStopped();
- bool isListening();
+ bool isListening() const;
+ bool ensureListening();
void wait();
+ bool restart();
private:
size_t count;
Server proto;
vector<Server> cluster;
map<pid_t, Server *> pids;
-
- bool startServer(Server &server);
};