Added basic hearbeat framework

This commit is contained in:
Kayne Ruse
2014-09-03 00:53:55 +10:00
parent d50cf5b91e
commit 5577387d61
5 changed files with 37 additions and 0 deletions
+17
View File
@@ -270,6 +270,12 @@ void InWorld::KeyUp(SDL_KeyboardEvent const& key) {
void InWorld::HandlePacket(SerialPacket* const argPacket) { void InWorld::HandlePacket(SerialPacket* const argPacket) {
switch(argPacket->type) { switch(argPacket->type) {
case SerialPacketType::PING:
HandlePing(static_cast<ServerPacket*>(argPacket));
break;
case SerialPacketType::PONG:
HandlePong(static_cast<ServerPacket*>(argPacket));
break;
case SerialPacketType::DISCONNECT: case SerialPacketType::DISCONNECT:
HandleDisconnect(static_cast<ClientPacket*>(argPacket)); HandleDisconnect(static_cast<ClientPacket*>(argPacket));
break; break;
@@ -292,6 +298,17 @@ void InWorld::HandlePacket(SerialPacket* const argPacket) {
} }
} }
void InWorld::HandlePing(ServerPacket* const argPacket) {
ServerPacket newPacket;
newPacket.type = SerialPacketType::PONG;
network.SendTo(&argPacket->srcAddress, &newPacket);
}
void InWorld::HandlePong(ServerPacket* const argPacket) {
//TODO: InWorld::HandlePong()
}
void InWorld::HandleDisconnect(ClientPacket* const argPacket) { void InWorld::HandleDisconnect(ClientPacket* const argPacket) {
//TODO: More needed in the disconnection //TODO: More needed in the disconnection
SetNextScene(SceneList::CLEANUP); SetNextScene(SceneList::CLEANUP);
+2
View File
@@ -75,6 +75,8 @@ protected:
//Network handlers //Network handlers
void HandlePacket(SerialPacket* const); void HandlePacket(SerialPacket* const);
void HandlePing(ServerPacket* const);
void HandlePong(ServerPacket* const);
void HandleDisconnect(ClientPacket* const); void HandleDisconnect(ClientPacket* const);
void HandleCharacterNew(CharacterPacket* const); void HandleCharacterNew(CharacterPacket* const);
void HandleCharacterDelete(CharacterPacket* const); void HandleCharacterDelete(CharacterPacket* const);
+2
View File
@@ -61,6 +61,8 @@ private:
void HandlePacket(SerialPacket* const); void HandlePacket(SerialPacket* const);
//basic connections //basic connections
void HandlePing(ServerPacket* const);
void HandlePong(ServerPacket* const);
void HandleBroadcastRequest(ServerPacket* const); void HandleBroadcastRequest(ServerPacket* const);
void HandleJoinRequest(ClientPacket* const); void HandleJoinRequest(ClientPacket* const);
void HandleDisconnect(ClientPacket* const); void HandleDisconnect(ClientPacket* const);
+6
View File
@@ -178,6 +178,12 @@ void ServerApplication::Quit() {
void ServerApplication::HandlePacket(SerialPacket* const argPacket) { void ServerApplication::HandlePacket(SerialPacket* const argPacket) {
switch(argPacket->type) { switch(argPacket->type) {
//basic connections //basic connections
case SerialPacketType::PING:
HandlePing(static_cast<ServerPacket*>(argPacket));
break;
case SerialPacketType::PONG:
HandlePong(static_cast<ServerPacket*>(argPacket));
break;
case SerialPacketType::BROADCAST_REQUEST: case SerialPacketType::BROADCAST_REQUEST:
HandleBroadcastRequest(static_cast<ServerPacket*>(argPacket)); HandleBroadcastRequest(static_cast<ServerPacket*>(argPacket));
break; break;
+10
View File
@@ -27,6 +27,16 @@
//basic connections //basic connections
//------------------------- //-------------------------
void ServerApplication::HandlePing(ServerPacket* const argPacket) {
ServerPacket newPacket;
newPacket.type = SerialPacketType::PONG;
network.SendTo(&argPacket->srcAddress, &newPacket);
}
void ServerApplication::HandlePong(ServerPacket* const argPacket) {
//TODO: ServerApplications::HandlePong()
}
void ServerApplication::HandleBroadcastRequest(ServerPacket* const argPacket) { void ServerApplication::HandleBroadcastRequest(ServerPacket* const argPacket) {
//send the server's data //send the server's data
ServerPacket newPacket; ServerPacket newPacket;