Fixes, mostly name changes

This commit is contained in:
stiffly
2015-12-17 17:28:43 +01:00
parent 000adb198f
commit 076030a252
12 changed files with 212 additions and 213 deletions
+61 -61
View File
@@ -16,7 +16,7 @@ void Server::Start(World* world, EventBroker* eventBroker)
}
LOG_INFO("I am Server. BIP BOP\n");
ReadFromClients();
readFromClients();
}
void Server::Update()
@@ -40,7 +40,7 @@ void Server::Close()
m_ThreadIsRunning = false;
}
void Server::ReadFromClients()
void Server::readFromClients()
{
char readBuffer[1024] = { 0 };
int bytesRead = 0;
@@ -60,9 +60,9 @@ void Server::ReadFromClients()
if (m_ThreadIsRunning && m_Socket.available()) {
try {
bytesRead = Receive(readBuffer, INPUTSIZE);
Package package(readBuffer, bytesRead);
ParseMessageType(package);
bytesRead = receive(readBuffer, INPUTSIZE);
Packet packet(readBuffer, bytesRead);
parseMessageType(packet);
} catch (const std::exception& err) {
//LOG_ERROR("%i: Read from client crashed %s", m_PacketID, err.what());
}
@@ -71,59 +71,59 @@ void Server::ReadFromClients()
std::clock_t currentTime = std::clock();
// Send snapshot
if (snapshotInterval < (1000 * (currentTime - previousSnapshotMessage) / (double)CLOCKS_PER_SEC)) {
SendSnapshot();
sendSnapshot();
previousSnapshotMessage = currentTime;
}
// Send pings each
if (intervalMs < (1000 * (currentTime - previousePingMessage) / (double)CLOCKS_PER_SEC)) {
SendPing();
sendPing();
previousePingMessage = currentTime;
}
// Time out logic
if (checkTimeOutInterval < (1000 * (currentTime - timOutTimer) / (double)CLOCKS_PER_SEC)) {
CheckForTimeOuts();
checkForTimeOuts();
timOutTimer = currentTime;
}
}
}
void Server::ParseMessageType(Package& package)
void Server::parseMessageType(Packet& packet)
{
int messageType = package.PopFrontPrimitive<int>(); // Read what type off message was sent from server
int messageType = packet.ReadPrimitive<int>(); // Read what type off message was sent from server
// Read packet ID
m_PreviousPacketID = m_PacketID; // Set previous packet id
m_PacketID = package.PopFrontPrimitive<int>(); //Read new packet id
m_PacketID = packet.ReadPrimitive<int>(); //Read new packet id
//IdentifyPacketLoss();
switch (static_cast<MessageType>(messageType)) {
case MessageType::Connect:
ParseConnect(package);
parseConnect(packet);
break;
case MessageType::ClientPing:
//ParseClientPing();
//parseClientPing();
break;
case MessageType::ServerPing:
ParseServerPing();
parseServerPing();
break;
case MessageType::Message:
break;
case MessageType::Snapshot:
ParseSnapshot(package);
parseSnapshot(packet);
break;
case MessageType::Disconnect:
ParseDisconnect();
parseDisconnect();
break;
case MessageType::Event:
ParseEvent(package);
parseEvent(packet);
break;
default:
break;
}
}
int Server::Receive(char * data, size_t length)
int Server::receive(char * data, size_t length)
{
length = m_Socket.receive_from(
boost::asio::buffer((void*)data
@@ -132,69 +132,69 @@ int Server::Receive(char * data, size_t length)
return length;
}
void Server::Send(Package& message, int playerID)
void Server::send(Packet& packet, int playerID)
{
m_Socket.send_to(
boost::asio::buffer(message.Data(), message.Size()),
boost::asio::buffer(packet.Data(), packet.Size()),
m_PlayerDefinitions[playerID].Endpoint,
0);
}
void Server::Send(Package & package)
void Server::send(Packet & packet)
{
m_Socket.send_to(
boost::asio::buffer(
package.Data(),
package.Size()),
packet.Data(),
packet.Size()),
m_ReceiverEndpoint,
0);
}
void Server::MoveMessageHead(char *& data, size_t & length, size_t stepSize)
void Server::moveMessageHead(char *& data, size_t & length, size_t stepSize)
{
data += stepSize;
length -= stepSize;
}
void Server::Broadcast(std::string message)
void Server::broadcast(std::string message)
{
Package package(MessageType::Event, m_SendPacketID);
package.AddString(message);
Packet packet(MessageType::Event, m_SendPacketID);
packet.WriteString(message);
for (int i = 0; i < MAXCONNECTIONS; i++) {
if (m_PlayerDefinitions[i].Endpoint.address() != boost::asio::ip::address()) {
Send(package, i);
send(packet, i);
}
}
}
void Server::Broadcast(Package& package)
void Server::broadcast(Packet& packet)
{
for (int i = 0; i < MAXCONNECTIONS; ++i) {
if (m_PlayerDefinitions[i].Endpoint.address() != boost::asio::ip::address()) {
Send(package, i);
send(packet, i);
}
}
}
void Server::SendSnapshot()
void Server::sendSnapshot()
{
Package package(MessageType::Snapshot, m_SendPacketID);
Packet packet(MessageType::Snapshot, m_SendPacketID);
for (size_t i = 0; i < MAXCONNECTIONS; i++) {
// Send an empty name if there is no player connected on this position.
package.AddString(m_PlayerDefinitions[i].Name);
packet.WriteString(m_PlayerDefinitions[i].Name);
if (m_PlayerDefinitions[i].EntityID == -1) {
continue;
}
// Pack transfrom component into data package
// Pack transfrom component into data packet
auto transform = m_World->GetComponent(m_PlayerDefinitions[i].EntityID, "Transform");
package.AddData(transform.Data, transform.Info.Meta.Stride);
packet.WriteData(transform.Data, transform.Info.Meta.Stride);
}
Broadcast(package);
broadcast(packet);
}
void Server::SendPing()
void Server::sendPing()
{
// Prints connected players ping
for (size_t i = 0; i < MAXCONNECTIONS; i++) {
@@ -205,15 +205,15 @@ void Server::SendPing()
}
// Create ping message
Package package(MessageType::ServerPing, m_SendPacketID);
package.AddString("Ping from server");
Packet packet(MessageType::ServerPing, m_SendPacketID);
packet.WriteString("Ping from server");
// Time message
m_StartPingTime = std::clock();
// Send message
Broadcast(package);
broadcast(packet);
}
void Server::CheckForTimeOuts()
void Server::checkForTimeOuts()
{
int timeOutTimeMs = 5000;
int startPing = 1000 * m_StartPingTime
@@ -225,15 +225,15 @@ void Server::CheckForTimeOuts()
/ static_cast<double>(CLOCKS_PER_SEC);
if (startPing > stopPing + timeOutTimeMs) {
LOG_INFO("Player %i timed out!", i);
Disconnect(i);
disconnect(i);
}
}
}
}
void Server::Disconnect(int i)
void Server::disconnect(int i)
{
Broadcast("A player disconnected");
broadcast("A player disconnected");
LOG_INFO("Player %i disconnected/timed out", i);
// Remove enteties and stuff
@@ -242,7 +242,7 @@ void Server::Disconnect(int i)
m_PlayerDefinitions[i].Name = "";
}
void Server::ParseEvent(Package& package)
void Server::parseEvent(Packet& packet)
{
size_t i;
for (i = 0; i < MAXCONNECTIONS; i++) {
@@ -255,7 +255,7 @@ void Server::ParseEvent(Package& package)
return;
unsigned int entityId = m_PlayerDefinitions[i].EntityID;
std::string eventString = package.PopFrontString();
std::string eventString = packet.ReadString();
if ("+Forward" == eventString) {
m_World->GetComponent(entityId, "Player")["Forward"] = true;
m_World->GetComponent(entityId, "Player")["Back"] = false;
@@ -278,7 +278,7 @@ void Server::ParseEvent(Package& package)
}
}
void Server::ParseConnect(Package& package)
void Server::parseConnect(Packet& packet)
{
LOG_INFO("Parsing connections");
// Check if player is already connected
@@ -294,48 +294,48 @@ void Server::ParseConnect(Package& package)
m_PlayersToCreate.push_back(i);
m_PlayerDefinitions[i].Endpoint = m_ReceiverEndpoint;
m_PlayerDefinitions[i].Name = package.PopFrontString();
m_PlayerDefinitions[i].Name = packet.ReadString();
m_StopTimes[i] = std::clock();
LOG_INFO("Player \"%s\" connected on IP: %s", m_PlayerDefinitions[i].Name, m_PlayerDefinitions[i].Endpoint.address().to_string());
Package package(MessageType::Connect, m_SendPacketID);
package.AddPrimitive<int>(i); // Player ID
Packet packet(MessageType::Connect, m_SendPacketID);
packet.WritePrimitive<int>(i); // Player ID
Send(package, i);
send(packet, i);
// Send notification that a player has connected
std::string str = m_PacketID + "Player " + m_PlayerDefinitions[i].Name + " connected on: "
+ m_PlayerDefinitions[i].Endpoint.address().to_string();
Broadcast(str);
broadcast(str);
break;
}
}
}
void Server::ParseDisconnect()
void Server::parseDisconnect()
{
LOG_INFO("%i: Parsing disconnect", m_PacketID);
for (int i = 0; i < MAXCONNECTIONS; i++) {
if (m_PlayerDefinitions[i].Endpoint.address() == m_ReceiverEndpoint.address()) {
Disconnect(i);
disconnect(i);
break;
}
}
}
void Server::ParseClientPing()
void Server::parseClientPing()
{
LOG_INFO("%i: Parsing ping", m_PacketID);
// Return ping
Package package(MessageType::ClientPing, m_SendPacketID);
package.AddString("Ping received");
Send(package); // This dosen't work for multiple users
Packet packet(MessageType::ClientPing, m_SendPacketID);
packet.WriteString("Ping received");
send(packet); // This dosen't work for multiple users
}
void Server::ParseServerPing()
void Server::parseServerPing()
{
for (int i = 0; i < MAXCONNECTIONS; i++) {
if (m_PlayerDefinitions[i].Endpoint.address() == m_ReceiverEndpoint.address()) {
@@ -346,7 +346,7 @@ void Server::ParseServerPing()
}
// NOT USED
void Server::ParseSnapshot(Package& package)
void Server::parseSnapshot(Packet& packet)
{
// Does no logic. Returns snapshot if client request one
// The snapshot is not a real snapshot tho...
@@ -360,7 +360,7 @@ void Server::ParseSnapshot(Package& package)
}
}
void Server::IdentifyPacketLoss()
void Server::identifyPacketLoss()
{
// if no packets lost, difference should be equal to 1
int difference = m_PacketID - m_PreviousPacketID;