Compare commits

..

No commits in common. "bcf31c729620416a4e84f58db1f9299fe865d0b3" and "3b30ff7371c6c07c6460623d888174ca96431eba" have entirely different histories.

3 changed files with 431 additions and 423 deletions

View File

@ -522,10 +522,10 @@ namespace skyscraper5.Skyscraper.IO.RemoteStreamReader
switch (result)
{
case RemoteStreamReaderConstants.COMMAND_SUCCESSFUL:
pRFLevel = TcpStream.ReadDoubleBE();
pRFLevel = NetworkStreamExtensions.ReadDoubleBE(TcpStream);
return true;
case RemoteStreamReaderConstants.COMMAND_FAILED:
pRFLevel = TcpStream.ReadDoubleBE();
pRFLevel = NetworkStreamExtensions.ReadDoubleBE(TcpStream);
return false;
default:
throw new NotImplementedException(result.ToString());

View File

@ -200,6 +200,16 @@ namespace skyscraper5.Skyscraper.IO
return BitConverter.ToDouble(buffer, 0);
}
public static double ReadDoubleBE(this Stream stream)
{
byte[] buffer = new byte[8];
if (stream.Read(buffer, 0, 8) != 8)
throw new EndOfStreamException();
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer, 0, 8);
return BitConverter.ToDouble(buffer, 0);
}
public static void WriteUInt8(this Stream stream, byte value)
{
byte[] buffer = new byte[1];
@ -387,41 +397,5 @@ namespace skyscraper5.Skyscraper.IO
}
return totalRead;
}
public static void WriteDoubleBE(this Stream stream, double value)
{
byte[] buffer = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
stream.Write(buffer, 0, 8);
}
public static double ReadDoubleBE(this Stream stream)
{
byte[] buffer = new byte[8];
if (stream.Read(buffer, 0, 8) != 8)
throw new EndOfStreamException("failed to read double");
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
return BitConverter.ToDouble(buffer, 0);
}
public static void WriteFloatBE(this Stream stream, float value)
{
byte[] buffer = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
stream.Write(buffer, 0, 4);
}
public static float ReadFloatBE(this NetworkStream stream)
{
byte[] buffer = new byte[4];
if (stream.Read(buffer, 0, 4) != 4)
throw new EndOfStreamException("failed to read float");
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
return BitConverter.ToSingle(buffer, 0);
}
}
}
}

View File

@ -152,7 +152,41 @@ namespace skyscraper5.Skyscraper.Net.Sockets
return buffer[0];
}
public static void WriteDoubleBE(this NetworkStream stream, double value)
{
byte[] buffer = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
stream.Write(buffer, 0, 8);
}
public static double ReadDoubleBE(this NetworkStream stream)
{
byte[] buffer = new byte[8];
if (stream.Read(buffer,0,8) != 8)
throw new EndOfStreamException("failed to read double");
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
return BitConverter.ToDouble(buffer, 0);
}
public static void WriteFloatBE(this NetworkStream stream, float value)
{
byte[] buffer = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
stream.Write(buffer, 0, 4);
}
public static float ReadFloatBE(this NetworkStream stream)
{
byte[] buffer = new byte[4];
if (stream.Read(buffer, 0, 4) != 4)
throw new EndOfStreamException("failed to read float");
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
return BitConverter.ToSingle(buffer, 0);
}
public static void WriteIntPtr(this NetworkStream stream, IntPtr ptr)
{