과제 제출본..

This commit is contained in:
2025-05-04 23:43:04 +09:00
parent 8ffe3a7519
commit 993d41736d
6 changed files with 185 additions and 291 deletions

View File

@@ -31,7 +31,7 @@ public:
if (sock_.connect(serveraddr) == INVALID_SOCKET) {
spdlog::error("{}", strerror(errno));
return;
std::exit(EXIT_FAILURE);
}
data_ = new IOCPPASSINDATA;
@@ -52,7 +52,7 @@ public:
});
}
void processresponsePacket(ResponsePacket responsePacket, IOCPPASSINDATA* data);
void processResponsePacket(ResponsePacket responsePacket, IOCPPASSINDATA* data);
void processLoginResponsePacket(LoginResponsePacket loginResponsePacket, IOCPPASSINDATA* data);
void processRoomCreateResponsePacket(RoomCreateResponsePacket roomCreateResponsePacket, IOCPPASSINDATA* data);
void processRoomListResponse(RoomListResponsePacket roomListResponsePacket, IOCPPASSINDATA* data);
@@ -62,13 +62,15 @@ public:
void processDataPostPacket(DataPostPacket dataPostPacket, IOCPPASSINDATA* data);
void processContinuePacket(ContinuePacket continuePacket, IOCPPASSINDATA* data);
void sendMessage(Snowflake ID, std::string message);
void registerUser(std::string userName);
void deleteUser(Snowflake UID);
std::vector<std::pair<Snowflake, std::string>> getUserList();
void getUserList();
Snowflake createRoom(std::string roomName);
void createRoom(std::string roomName);
void deleteRoom(Snowflake RID);
std::vector<std::pair<Snowflake, std::string>> getRoomList();
void getRoomList();
void joinRoom(Snowflake UID, Snowflake RID);
void exitRoom(Snowflake UID, Snowflake RID);
@@ -85,18 +87,21 @@ private:
bool inRoom_ = false;
std::future<ResponsePacket> lastResponsePacket_;
TCPSocket sock_;
std::mutex resourceMutex_;
std::mutex screenMutex_;
std::unordered_map<Snowflake, std::string> roomNames_;
std::queue<std::string> messageQueue_;
std::vector<std::string> messageHistory_;
std::unordered_map<Snowflake, std::unordered_map<Snowflake, std::shared_ptr<TCPSocket>>> rooms_;
std::future<std::unordered_map<Snowflake, std::string>> roomNames_;
std::future<std::unordered_map<std::string, Snowflake>> findRoomId_;
std::unordered_map<Snowflake, std::shared_ptr<TCPSocket>> UID2userSocket_;
std::unordered_map<std::shared_ptr<TCPSocket>, Snowflake> userSocket2UID_;
std::unordered_map<Snowflake, std::string> userNames_;
std::future<std::unordered_map<Snowflake, std::string>> userNames_;
std::future<std::unordered_map<std::string, Snowflake>> findUserId_;
};
}