/* * predixy - A high performance and full features proxy for redis. * Copyright (C) 2017 Joyield, Inc. * All rights reserved. */ #ifndef _PREDIXY_SERVER_GROUP_H_ #define _PREDIXY_SERVER_GROUP_H_ #include #include #include #include "Server.h" #include "String.h" #include "Predixy.h" class ServerGroup : public ID { public: ServerGroup(ServerPool* pool, const String& name); ~ServerGroup(); ServerPool* pool() const {return mPool;} String name() const {return mName;} Server* getMaster() const; Server* getServer(Handler* h, Request* req) const; void add(Server* s); void remove(Server* s); private: Server* getReadServer(Handler* h) const; Server* getReadServer(Handler* h, DC* localDC) const; private: ServerPool* mPool; SString mName; std::vector mServs; }; #endif