Shadowrun: Awakened 29 September 2011 - Build 871
GetServerListPacket.cpp
Go to the documentation of this file.
00001 #include "GetServerListPacket.h"
00002 #include "SraNetworkShared.h"
00003 
00004 namespace SraNetwork
00005 {
00006     GetServerListPacket::GetServerListPacket(void)
00007     {
00008         //TODO : Get the actual list of running servers.
00009         SraServerInfo info;
00010         info.currentNumberOfPlayers = 0;
00011         info.ip = SraNetwork::WORLD_SERVER_ADDR;
00012         info.name = "Debug server";
00013 
00014         listOfServers.push_back(info);
00015 
00016         opCode = ID_GET_SRVLIST;
00017     }
00018 
00019 
00020     GetServerListPacket::~GetServerListPacket(void)
00021     {
00022     }
00023 
00027     void GetServerListPacket::Serialize(RakNet::BitStream* target)
00028     {
00029         SraPacket::Serialize(target);
00030 
00031         target->Write<int>( listOfServers.size());
00032         
00033         vector<SraServerInfo>::iterator it;
00034         it = listOfServers.begin();
00035 
00036         int offset = 1;
00037         while (it != listOfServers.end())
00038         {
00039             it->Serialize(target);
00040             it++;
00041         }
00042     }
00043     
00047     void GetServerListPacket::Deserialize(RakNet::BitStream* source)
00048     {
00049 
00050         int numberOfInfos = -1;
00051         source->Read<int>(numberOfInfos);
00052 
00053         if (numberOfInfos > MAX_NUMBER_OF_SERVERS_PER_MESSAGE ||
00054             numberOfInfos < 0)
00055         {
00056             printf("Invalid GetServerListMessage\n");
00057         }
00058 
00059         int i = 0;
00060         for (i = 0; i < numberOfInfos; ++i)
00061         {
00062             SraServerInfo info;
00063             info.Deserialize(source);
00064 
00065             listOfServers.push_back(info);
00066         }
00067     }
00068 }

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net