Moved packets into their own namespace

This commit is contained in:
Kayne Ruse
2013-06-24 10:27:43 +10:00
parent 9608761cd5
commit 56375d64b6
11 changed files with 85 additions and 95 deletions
+8 -8
View File
@@ -32,7 +32,7 @@
static SDL_sem* lock = SDL_CreateSemaphore(1);
static SDL_Thread* queueThread = nullptr;
static std::deque<Packet> queue;
static std::deque<Packet::Packet> queue;
static bool running = false;
@@ -41,8 +41,8 @@ static int networkQueue(void*) {
while(running) {
SDL_SemWait(lock);
while(netUtil->Receive()) {
Packet p;
memcpy(&p, netUtil->GetInData(), sizeof(Packet));
Packet::Packet p;
memcpy(&p, netUtil->GetInData(), sizeof(Packet::Packet));
p.meta.address = netUtil->GetInPacket()->address;
queue.push_back(p);
}
@@ -80,19 +80,19 @@ void killQueueThread() {
queueThread = nullptr;
}
Packet peekNetworkPacket() {
Packet::Packet peekNetworkPacket() {
SDL_SemWait(lock);
Packet p;
Packet::Packet p;
if (queue.size() > 0) {
Packet p = queue[0];
Packet::Packet p = queue[0];
}
SDL_SemPost(lock);
return p;
}
Packet popNetworkPacket() {
Packet::Packet popNetworkPacket() {
SDL_SemWait(lock);
Packet p;
Packet::Packet p;
if (queue.size() > 0) {
p = queue[0];
queue.pop_front();
+3 -3
View File
@@ -22,13 +22,13 @@
#ifndef NETWORKQUEUE_HPP_
#define NETWORKQUEUE_HPP_
#include "packet_type.hpp"
#include "packet.hpp"
void beginQueueThread();
void endQueueThread();
void killQueueThread();
Packet peekNetworkPacket();
Packet popNetworkPacket();
Packet::Packet peekNetworkPacket();
Packet::Packet popNetworkPacket();
void flushNetworkQueue();
#endif
@@ -30,7 +30,9 @@
#pragma pack(push, 0)
enum class PacketType {
namespace Packet {
enum class Type {
NONE = 0,
PING = 1,
@@ -43,13 +45,11 @@ enum class PacketType {
SYNCHRONIZE = 8,
PLAYER_NEW = 9,
PLAYER_DELETE = 10,
PLAYER_MOVE = 11,
PLAYER = 9,
};
struct Metadata {
PacketType type;
Type type;
IPaddress address;
};
@@ -90,27 +90,15 @@ struct Synchronize {
Metadata meta;
};
struct PlayerNew {
struct Player {
Metadata meta;
int playerIndex;
//TODO Playerdata
//player data
};
struct PlayerDelete {
Metadata meta;
int playerIndex;
};
struct PlayerMove {
Metadata meta;
int playerIndex;
Vector2 position;
Vector2 motion;
};
union Packet {
Packet() {
meta.type = PacketType::NONE;
meta.type = Type::NONE;
meta.address.host = 0;
meta.address.port = 0;
};
@@ -124,15 +112,17 @@ union Packet {
JoinResponse joinResponse;
Disconnect disconnect;
PlayerNew playerNew;
PlayerDelete playerDelete;
PlayerMove playerMove;
Synchronize sync;
Player player;
#ifdef DEBUG
char buffer[1024];
#endif
};
} //namespace Packet
#pragma pack(pop)
#endif