#define _SERVERPOOL_H 1
#include <stddef.h>
+#include <memory>
#include <string>
#include <vector>
class ServerPool {
public:
ServerPool(int num_servers);
- ~ServerPool();
// Fills streams() and clients().
CubemapStateProto serialize();
std::vector<ClientStats> get_client_stats() const;
private:
- Server *servers;
- int num_servers, clients_added;
+ std::unique_ptr<Server[]> servers;
+ int num_servers, clients_added = 0;
// Our indexing is currently rather primitive; every stream_index in
// [0, num_http_streams) maps to a HTTP stream (of which every Server
// has exactly one copy), and after that, it's mapping directly into
// <udp_streams>.
- int num_http_streams;
- std::vector<UDPStream *> udp_streams;
+ int num_http_streams = 0;
+ std::vector<std::unique_ptr<UDPStream>> udp_streams;
ServerPool(const ServerPool &);
};