비트 딱 맞는지 리눅스에서도 확인할 것

This commit is contained in:
2025-05-01 10:44:45 +09:00
parent 9451b4da40
commit d3161edb36
8 changed files with 88 additions and 29 deletions

View File

@@ -27,7 +27,7 @@ enum class DataType : std::uint8_t {
BINARY
};
class alignas(1) Packet {
class alignas(4) Packet {
public:
union {
struct {
@@ -35,7 +35,7 @@ public:
RequestType requestType;
DataType dataType;
std::uint16_t packetLength;
std::uint8_t data[1495];
std::uint8_t data[1484];
} __data;
std::uint8_t serialized[1500];
};
@@ -49,7 +49,7 @@ public:
}
};
class alignas(1) LoginRequestPacket : public Packet {
class alignas(4) LoginRequestPacket : public Packet {
public:
union {
struct {
@@ -63,7 +63,7 @@ public:
};
};
class alignas(1) RoomCreateRequestPacket : public Packet {
class alignas(4) RoomCreateRequestPacket : public Packet {
public:
union {
struct {
@@ -77,7 +77,7 @@ public:
};
};
class alignas(1) RoomListRequestPacket : public Packet {
class alignas(4) RoomListRequestPacket : public Packet {
public:
union {
struct {
@@ -92,7 +92,7 @@ public:
};
};
class alignas(1) RoomJoinRequestPacket : public Packet {
class alignas(4) RoomJoinRequestPacket : public Packet {
public:
union {
struct {
@@ -106,7 +106,7 @@ public:
};
};
class alignas(1) RoomExitRequestPacket : public Packet {
class alignas(4) RoomExitRequestPacket : public Packet {
public:
union {
struct {
@@ -120,7 +120,7 @@ public:
};
};
class alignas(1) UsersListRequestPacket : public Packet {
class alignas(4) UsersListRequestPacket : public Packet {
public:
union {
struct {
@@ -135,7 +135,7 @@ public:
};
};
class alignas(1) DataPostPacket : public Packet {
class alignas(4) DataPostPacket : public Packet {
public:
union {
struct {
@@ -149,7 +149,7 @@ public:
};
};
class alignas(1) ContinuePacket : public Packet {
class alignas(4) ContinuePacket : public Packet {
public:
union {
struct {
@@ -173,7 +173,7 @@ enum class ResponseStatusCode : std::uint16_t {
INTERNAL_SERVER_ERROR = 500
};
class alignas(1) ResponsePacket : public Packet {
class alignas(4) ResponsePacket : public Packet {
public:
union {
struct {

View File

@@ -6,10 +6,10 @@
namespace Chattr {
class Session {
public:
Session();
Session(Chattr::TCPSocket __sock);
~Session();
bool init();
void init(Chattr::TCPSocket __sock);
void destruct();
int send();

View File

@@ -1,10 +1,23 @@
#pragma once
#include "Utils/ThreadPool.hpp"
namespace Chattr {
class IOCP {
public:
IOCP();
IOCP(std::shared_ptr<ThreadPool> __IOCPThread);
~IOCP();
void init(std::shared_ptr<ThreadPool> __IOCPThread);
void recv();
private:
std::shared_ptr<ThreadPool> IOCPThread_;
#ifdef _WIN32
HANDLE completinPort_;
#elif __linux__
#endif
};
}

View File

@@ -11,9 +11,12 @@ namespace Chattr {
class ThreadPool {
public:
ThreadPool();
ThreadPool(std::uint32_t numThreads);
~ThreadPool();
void init(std::uint32_t numThreads);
template<typename _Callable, typename... _Args>
requires (!std::is_void_v<std::invoke_result_t<_Callable, _Args...>>)
int enqueueJob(_Callable&& __job, std::invoke_result_t<_Callable, _Args...>& retVal, _Args&&... __args) {