#pragma once #include "network/tcp-chat-protocol/v1.h" #include "server/server.h" #include "log.h" Result(char*) __sendErrorMessage(ClientConnection* conn, PacketHeader* req_head, PacketHeader* res_head, u32 msg_buf_size, cstr format, va_list argv); Result(char*) sendErrorMessage(ClientConnection* conn, PacketHeader* req_head, PacketHeader* res_head, u32 msg_buf_size, cstr format, ...) ATTRIBUTE_CHECK_FORMAT_PRINTF(5, 6); #define declare_RequestHandler(TYPE) \ Result(void) handleRequest_##TYPE( \ cstr log_ctx, cstr req_type_name, \ ClientConnection* conn, PacketHeader* req_head, PacketHeader* res_head) #define case_handleRequest(TYPE) \ case PacketType_##TYPE##Request:\ try_void(handleRequest_##TYPE(log_ctx, #TYPE, conn, &req_head, &res_head));\ break; declare_RequestHandler(ServerPublicInfo); declare_RequestHandler(Login); declare_RequestHandler(Register);