Ejemplo n.º 1
0
		public void ReceiveMessage(MockClient client, byte[] bytesReceived)
		{
			var total = new MemoryStream(bytesReceived);
			var reader = new BinaryReader(total);
			var messageLength = reader.ReadNumberMostlyBelow255();
			var messageBytes = reader.ReadBytes(messageLength);
			foreach (var connection in connectedClients.OfType<MockConnection>())
				if (connection.Client == client)
					OnClientDataReceived(connection, messageBytes.ToBinaryData());
		}
Ejemplo n.º 2
0
		private static IDictionary LoadDictionary(IDictionary data, BinaryReader reader)
		{
			var count = reader.ReadNumberMostlyBelow255();
			data.Clear();
			if (count == 0)
				return data;
			var valuesType = (BinaryDataSaver.ArrayElementType)reader.ReadByte();
			if (valuesType == BinaryDataSaver.ArrayElementType.AllTypesAreDifferent)
				LoadDictionaryWhereAllValuesAreNotTheSameType(data, reader, count);
			else
				LoadDictionaryWhereAllValuesAreTheSameType(data, reader, count);
			return data;
		}
Ejemplo n.º 3
0
		private static object LoadArray(IList list, Type arrayType, BinaryReader reader)
		{
			var count = reader.ReadNumberMostlyBelow255();
			if (list == null)
				list = Activator.CreateInstance(arrayType, new object[] { count }) as IList;
			if (count == 0)
				return list;
			var arrayElementType = (BinaryDataSaver.ArrayElementType)reader.ReadByte();
			if (arrayElementType == BinaryDataSaver.ArrayElementType.AllTypesAreNull)
				return list;
			if (arrayElementType == BinaryDataSaver.ArrayElementType.AllTypesAreDifferent)
				LoadArrayWhereAllElementsAreNotTheSameType(list, arrayType, reader, count);
			else
			{
				Type elementType = arrayElementType == BinaryDataSaver.ArrayElementType.AllTypesAreTypes
					? typeof(Type)
					: BinaryDataExtensions.GetTypeFromShortNameOrFullNameIfNotFound(reader.ReadString());
				LoadArrayWhereAllElementsAreTheSameType(list, arrayType, reader, count, elementType);
			}
			return list;
		}
Ejemplo n.º 4
0
		private static char[] LoadCharArray(BinaryReader reader)
		{
			int count = reader.ReadNumberMostlyBelow255();
			return reader.ReadChars(count);
		}
Ejemplo n.º 5
0
		private static byte[] LoadByteArray(BinaryReader reader)
		{
			int length = reader.ReadNumberMostlyBelow255();
			return reader.ReadBytes(length);
		}
Ejemplo n.º 6
0
		private static MemoryStream LoadMemoryStream(BinaryReader reader)
		{
			int length = reader.ReadNumberMostlyBelow255();
			return new MemoryStream(reader.ReadBytes(length));
		}
Ejemplo n.º 7
0
		public void WriteAndReadNumberMostlyBelow255WithANumberOver255()
		{
			var data = new MemoryStream();
			var writer = new BinaryWriter(data);
			const int NumberOver255 = 123456;
			writer.WriteNumberMostlyBelow255(NumberOver255);
			data.Position = 0;
			var reader = new BinaryReader(data);
			Assert.AreEqual(NumberOver255, reader.ReadNumberMostlyBelow255());
		}