From 2050c0e0576f05156f192aa4caf48834d2f28b14 Mon Sep 17 00:00:00 2001 From: fschildt Date: Fri, 22 Aug 2025 15:23:11 +0200 Subject: first commit --- src/messages/messages.h | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/messages/messages.h (limited to 'src/messages/messages.h') diff --git a/src/messages/messages.h b/src/messages/messages.h new file mode 100644 index 0000000..dfc0df3 --- /dev/null +++ b/src/messages/messages.h @@ -0,0 +1,75 @@ +#ifndef FSCORD_MESSAGES_H +#define FSCORD_MESSAGES_H + +// Todo: Currently every user is identified via his name. Can we change it to an id? + +#include +#include +#include +#include + + +#define MESSAGES_MAX_USER_COUNT 128 +#define MESSAGES_MAX_USERNAME_LEN 32 +#define MESSAGES_MAX_PASSWORD_LEN 32 +#define MESSAGES_MAX_MESSAGE_LEN 1024 +#define MESSAGES_MAX_PACKAGE_SIZE 1408 + +typedef struct { + u32 size; + u32 type; +} MessageHeader; + +enum { + C2S_LOGIN, + C2S_CHAT_MESSAGE, +}; + +enum { + S2C_LOGIN, + S2C_USER_UPDATE, + S2C_CHAT_MESSAGE, +}; + +enum { + S2C_LOGIN_ERROR, + S2C_LOGIN_SUCCESS +}; + +enum { + S2C_USER_UPDATE_OFFLINE, + S2C_USER_UPDATE_ONLINE, +}; + +typedef struct { + MessageHeader header; + String32 *username; + String32 *password; +} C2S_Login; + +typedef struct { + MessageHeader header; + String32 *content; +} C2S_ChatMessage; + +typedef struct { + MessageHeader header; + u32 login_result; +} S2C_Login; + +typedef struct { + MessageHeader header; + u32 status; + String32 *username; +} S2C_UserUpdate; + +typedef struct { + MessageHeader header; + i64 epoch_time_seconds; + i64 epoch_time_nanoseconds; + String32 *username; + String32 *content; +} S2C_ChatMessage; + + +#endif // FSCORD_MESSAGES_H -- cgit v1.2.3