Added class Package to help refactor the code. The code got easier to read.
This commit is contained in:
@@ -30,6 +30,7 @@ private:
|
||||
void SendToServer();
|
||||
|
||||
int Receive(char* data, size_t length);
|
||||
void Send(Package& message);
|
||||
int CreateMessage(MessageType type, std::string message, char* data);
|
||||
void Connect();
|
||||
void Disconnect();
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
#include <boost/asio/ip/udp.hpp>
|
||||
#include <queue>
|
||||
#include "Network/Package.h"
|
||||
|
||||
|
||||
#define BOARDSIZE 16
|
||||
#define MAXCONNECTIONS 8
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef Package_h__
|
||||
#define Package_h__
|
||||
|
||||
#include <string>
|
||||
#include "Network/MessageType.h"
|
||||
|
||||
// Defines the
|
||||
class Package
|
||||
{
|
||||
public:
|
||||
// arg1: Type of message (Connect, Disconnect...)
|
||||
// arg2: PackageID for identifying packet loss.
|
||||
Package(MessageType type);
|
||||
~Package();
|
||||
// Add primitive types like int, float, char...
|
||||
template<typename T>
|
||||
void AddPrimitive(T val)
|
||||
{
|
||||
memcpy(m_Data + m_Offset, &val, sizeof(T));
|
||||
m_Offset += sizeof(T);
|
||||
}
|
||||
void AddString(std::string str);
|
||||
|
||||
int Size() { return m_Offset; };
|
||||
char* Data() { return m_Data; };
|
||||
|
||||
private:
|
||||
char* m_Data = new char[128];
|
||||
int m_Offset = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -47,10 +47,12 @@ private:
|
||||
|
||||
|
||||
int Receive(char* data, size_t length);
|
||||
void Send(Package& package, int playerID);
|
||||
void Send(Package& package);
|
||||
int CreateMessage(MessageType type, std::string message, char * data);
|
||||
void MoveMessageHead(char*& data, size_t& length, size_t stepSize);
|
||||
void Broadcast(std::string message);
|
||||
void Broadcast(char* data, size_t length);
|
||||
void Broadcast(Package& package);
|
||||
void SendSnapshot();
|
||||
void SendPing();
|
||||
void CheckForTimeOuts();
|
||||
|
||||
Reference in New Issue
Block a user