StyleCop and TODO

This commit is contained in:
Matthias Mailänder
2014-05-15 09:51:45 +02:00
parent f68a6bbd76
commit c7fad3a693
3 changed files with 33 additions and 26 deletions

View File

@@ -20,19 +20,19 @@ namespace OpenRA.Network
public string Version; public string Version;
public string Map; public string Map;
public string Serialize()
{
var data = new List<MiniYamlNode>();
data.Add(new MiniYamlNode("Handshake", FieldSaver.Save(this)));
return data.WriteToString();
}
public static HandshakeRequest Deserialize(string data) public static HandshakeRequest Deserialize(string data)
{ {
var handshake = new HandshakeRequest(); var handshake = new HandshakeRequest();
FieldLoader.Load(handshake, MiniYaml.FromString(data).First().Value); FieldLoader.Load(handshake, MiniYaml.FromString(data).First().Value);
return handshake; return handshake;
} }
public string Serialize()
{
var data = new List<MiniYamlNode>();
data.Add(new MiniYamlNode("Handshake", FieldSaver.Save(this)));
return data.WriteToString();
}
} }
public class HandshakeResponse public class HandshakeResponse
@@ -42,16 +42,6 @@ namespace OpenRA.Network
public string Password; public string Password;
[FieldLoader.Ignore] public Session.Client Client; [FieldLoader.Ignore] public Session.Client Client;
public string Serialize()
{
var data = new List<MiniYamlNode>();
data.Add( new MiniYamlNode( "Handshake", null,
new string[]{ "Mod", "Version", "Password" }.Select( p => FieldSaver.SaveField(this, p) ).ToList() ) );
data.Add(new MiniYamlNode("Client", FieldSaver.Save(Client)));
return data.WriteToString();
}
public static HandshakeResponse Deserialize(string data) public static HandshakeResponse Deserialize(string data)
{ {
var handshake = new HandshakeResponse(); var handshake = new HandshakeResponse();
@@ -59,6 +49,7 @@ namespace OpenRA.Network
var ys = MiniYaml.FromString(data); var ys = MiniYaml.FromString(data);
foreach (var y in ys) foreach (var y in ys)
{
switch (y.Key) switch (y.Key)
{ {
case "Handshake": case "Handshake":
@@ -68,7 +59,19 @@ namespace OpenRA.Network
FieldLoader.Load(handshake.Client, y.Value); FieldLoader.Load(handshake.Client, y.Value);
break; break;
} }
}
return handshake; return handshake;
} }
public string Serialize()
{
var data = new List<MiniYamlNode>();
data.Add(new MiniYamlNode("Handshake", null,
new string[] { "Mod", "Version", "Password" }.Select(p => FieldSaver.SaveField(this, p)).ToList()));
data.Add(new MiniYamlNode("Client", FieldSaver.Save(Client)));
return data.WriteToString();
}
} }
} }

View File

@@ -38,19 +38,19 @@ namespace OpenRA.Network
switch (yy[0]) switch (yy[0])
{ {
case "Client":
session.Clients.Add(FieldLoader.Load<Client>(y.Value));
break;
case "ClientPing":
session.ClientPings.Add(FieldLoader.Load<ClientPing>(y.Value));
break;
case "GlobalSettings": case "GlobalSettings":
FieldLoader.Load(session.GlobalSettings, y.Value); FieldLoader.Load(session.GlobalSettings, y.Value);
break; break;
case "Client": case "Slot":
session.Clients.Add(FieldLoader.Load<Client>(y.Value));
break;
case "ClientPing":
session.ClientPings.Add(FieldLoader.Load<ClientPing>(y.Value));
break;
case "Slot":
var s = FieldLoader.Load<Slot>(y.Value); var s = FieldLoader.Load<Slot>(y.Value);
session.Slots.Add(s.PlayerReference, s); session.Slots.Add(s.PlayerReference, s);
break; break;

View File

@@ -459,6 +459,7 @@ namespace OpenRA.Server
break; break;
} }
case "HandshakeResponse": case "HandshakeResponse":
ValidateClient(conn, so.Data); ValidateClient(conn, so.Data);
break; break;
@@ -581,6 +582,7 @@ namespace OpenRA.Server
if (State != ServerState.WaitingPlayers) if (State != ServerState.WaitingPlayers)
return; return;
// TODO: only need to sync the specific client that has changed to avoid conflicts
var clientData = new System.Text.StringBuilder(); var clientData = new System.Text.StringBuilder();
foreach (var client in LobbyInfo.Clients) foreach (var client in LobbyInfo.Clients)
clientData.Append(client.Serialize()); clientData.Append(client.Serialize());
@@ -597,6 +599,7 @@ namespace OpenRA.Server
if (State != ServerState.WaitingPlayers) if (State != ServerState.WaitingPlayers)
return; return;
// TODO: don't sync all the slots if just one changed
var slotData = new System.Text.StringBuilder(); var slotData = new System.Text.StringBuilder();
foreach (var slot in LobbyInfo.Slots) foreach (var slot in LobbyInfo.Slots)
slotData.Append(slot.Value.Serialize()); slotData.Append(slot.Value.Serialize());
@@ -622,6 +625,7 @@ namespace OpenRA.Server
public void SyncClientPing() public void SyncClientPing()
{ {
// TODO: split this further into per client ping orders
var clientPings = new System.Text.StringBuilder(); var clientPings = new System.Text.StringBuilder();
foreach (var ping in LobbyInfo.ClientPings) foreach (var ping in LobbyInfo.ClientPings)
clientPings.Append(ping.Serialize()); clientPings.Append(ping.Serialize());