Merge remote-tracking branch 'origin/Networking' into Networking

# Conflicts:
#	src/Engine/Network/Client.cpp
This commit is contained in:
stiffly
2015-12-18 11:26:48 +01:00
7 changed files with 40 additions and 58 deletions
-13
View File
@@ -1,13 +0,0 @@
#include "Network/Network.h"
Network::Network()
{ }
Network::~Network()
{ }
void Network::Start(World * m_world, EventBroker * eventBroker)
{ }
void Network::Update()
{ }
+22 -12
View File
@@ -2,7 +2,7 @@
Packet::Packet(MessageType type, unsigned int& packetID)
{
m_Data = new char[128];
m_Data = new char[m_MaxPacketSize];
// Create message header
// Add message type
int messageType = static_cast<int>(type);
@@ -12,10 +12,12 @@ Packet::Packet(MessageType type, unsigned int& packetID)
packetID++;
}
// Create message
Packet::Packet(char* data, const int sizeOfPacket)
{
// Create message
// Resize message
m_MaxPacketSize = sizeOfPacket;
// Copy data newly allocated memory
m_Data = new char[sizeOfPacket];
memcpy(m_Data, data, sizeOfPacket);
m_Offset = sizeOfPacket;
@@ -29,14 +31,18 @@ Packet::~Packet()
void Packet::WriteString(std::string str)
{
// Message, add one extra byte for null terminator
memcpy(m_Data + m_Offset, str.data(), (str.size() + 1) * sizeof(char));
m_Offset += (str.size() + 1) * sizeof(char);
int sizeOfString = str.size() + 1;
if (m_Offset + sizeOfString > m_MaxPacketSize) {
LOG_WARNING("Package::WriteString(): Data size in packet exceeded maximum package size.\n");
}
memcpy(m_Data + m_Offset, str.data(), sizeOfString * sizeof(char));
m_Offset += sizeOfString * sizeof(char);
}
void Packet::WriteData(char * data, int sizeOfData)
{
if (m_Offset + sizeOfData > 128) {
LOG_WARNING("Packet::AddData(): Data size in packet exceeded maximum packet size.\n");
{
if (m_Offset + sizeOfData > m_MaxPacketSize) {
LOG_WARNING("Packet::WriteData(): Data size in packet exceeded maximum packet size.\n");
}
memcpy(m_Data + m_Offset, data, sizeOfData);
m_Offset += sizeOfData;
@@ -45,10 +51,10 @@ void Packet::WriteData(char * data, int sizeOfData)
std::string Packet::ReadString()
{
std::string returnValue(m_Data + m_ReturnDataOffset);
if (m_Offset < m_ReturnDataOffset + returnValue.size()){
LOG_WARNING("packet PopFrontString(): Oh no! You are trying to remove things outside my memory kingdom");
if (m_Offset < m_ReturnDataOffset + returnValue.size()) {
LOG_WARNING("packet ReadString(): Oh no! You are trying to remove things outside my memory kingdom");
return "PopFrontString Failed";
}
}
// +1 for null terminator.
m_ReturnDataOffset += returnValue.size() + 1;
return returnValue;
@@ -56,7 +62,11 @@ std::string Packet::ReadString()
char * Packet::ReadData(int SizeOfData)
{
if (m_Offset < m_ReturnDataOffset + SizeOfData) {
LOG_WARNING("packet ReadData(): Oh no! You are trying to remove things outside my memory kingdom");
return nullptr;
}
unsigned int oldReturnDataOffset = m_ReturnDataOffset;
m_ReturnDataOffset += SizeOfData;
return (m_Data + oldReturnDataOffset);
}
}