Serialization test.
This commit is contained in:
@@ -33,8 +33,6 @@ using namespace std::chrono_literals;
|
||||
bool server_running = true;
|
||||
bool client_running = true;
|
||||
|
||||
|
||||
|
||||
void RunServer() {
|
||||
|
||||
std::cout << "Starting server thread." << std::endl;
|
||||
@@ -112,6 +110,59 @@ void RunClient() {
|
||||
std::cout << "Client closing." << std::endl;
|
||||
}
|
||||
|
||||
using namespace CaveGame::Core;
|
||||
|
||||
struct Header
|
||||
{
|
||||
std::string watermark = "RCG25";
|
||||
|
||||
void Write(Buffer& buffer)
|
||||
{
|
||||
write_string(buffer, watermark);
|
||||
}
|
||||
|
||||
void Read(Buffer& buffer)
|
||||
{
|
||||
watermark = read_string(buffer);
|
||||
}
|
||||
};
|
||||
|
||||
class Packet
|
||||
{
|
||||
public:
|
||||
Header header;
|
||||
virtual void Write(Buffer& buffer)
|
||||
{
|
||||
header.Write(buffer);
|
||||
}
|
||||
|
||||
virtual void Read(Buffer& buffer)
|
||||
{
|
||||
header.Read(buffer);
|
||||
}
|
||||
};
|
||||
|
||||
class ChatPacket : public Packet
|
||||
{
|
||||
public:
|
||||
std::string sender;
|
||||
std::string message;
|
||||
|
||||
void Read(CaveGame::Core::Buffer &buffer) override
|
||||
{
|
||||
Packet::Read(buffer);
|
||||
write_string(buffer, sender);
|
||||
write_string(buffer, message);
|
||||
}
|
||||
|
||||
void Write(CaveGame::Core::Buffer &buffer) override
|
||||
{
|
||||
Packet::Write(buffer);
|
||||
sender = read_string(buffer);
|
||||
message = read_string(buffer);
|
||||
}
|
||||
};
|
||||
|
||||
void roundtrip_test()
|
||||
{
|
||||
using namespace CaveGame::Core;
|
||||
@@ -119,30 +170,38 @@ void roundtrip_test()
|
||||
uint8_t a = 128;
|
||||
uint16_t b = 32000;
|
||||
uint32_t c = 666420;
|
||||
uint64_t d = 42069666;
|
||||
|
||||
int8_t d = -64;
|
||||
float e = 3.14159f;
|
||||
int8_t e = -64;
|
||||
float f = 3.14159f;
|
||||
std::string tetsuo = "Tetsuo!.!.!..!!..!!";
|
||||
|
||||
Buffer test;
|
||||
test.index = 0;
|
||||
test.size = 32;
|
||||
//test.data = ;
|
||||
test.size = 512;
|
||||
test.data = new uint8_t[512];
|
||||
|
||||
write_u8(test, a);
|
||||
write_u8(test, 12);
|
||||
write_u16(test, b);
|
||||
write_u32(test, c);
|
||||
write_s8(test, d);
|
||||
write_f32(test, e);
|
||||
write_u64(test, d);
|
||||
write_s8(test, e);
|
||||
write_f32(test, f);
|
||||
write_string(test, tetsuo);
|
||||
|
||||
test.index = 0;
|
||||
|
||||
a = read_u8(test);
|
||||
a = read_u8(test);
|
||||
b = read_u16(test);
|
||||
c = read_u32(test);
|
||||
d = read_s8(test);
|
||||
e = read_f32(test);
|
||||
|
||||
d = read_u64(test);
|
||||
e = read_s8(test);
|
||||
f = read_f32(test);
|
||||
tetsuo = read_string(test);
|
||||
|
||||
std::cout << tetsuo << std::endl;
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user