Files
mir_server/Gateway/gateway/client/client_obj_mgr.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

25 lines
590 B
C++

#pragma once
#include <map>
class ClientObjMgr {
public:
ClientObjMgr();
~ClientObjMgr();
void SetMaxSession(int max_session);
bool setNewClient(Client *cli);
void flush(void);
std::map<uint16_t, Client*> &getClientMap(void) {
return client_list_;
}
Client* get(uint16_t index);
Client* remove(uint16_t index);
private:
uint16_t max_session_;//最大客户端连接数
uint16_t cur_idx_;
std::list<uint16_t> free_cli_idx_;//空闲的客户端索引
std::vector<Client*> client_append_list_;
Mutex client_lock_; //客户端列表锁给append_list用
std::map<uint16_t, Client*> client_list_;
};