Added class Package to help refactor the code. The code got easier to read.

This commit is contained in:
stiffly
2015-12-10 17:07:18 +01:00
parent d22e59f28f
commit 58952725e9
7 changed files with 138 additions and 129 deletions
+1
View File
@@ -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
+32
View File
@@ -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
+3 -1
View File
@@ -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();