/** <inheritDoc /> */ public void ReadBinary(IBinaryReader reader) { Byte = reader.ReadByte("Byte"); ByteArray = reader.ReadByteArray("ByteArray"); Char = reader.ReadChar("Char"); CharArray = reader.ReadCharArray("CharArray"); Short = reader.ReadShort("Short"); ShortArray = reader.ReadShortArray("ShortArray"); Int = reader.ReadInt("Int"); IntArray = reader.ReadIntArray("IntArray"); Long = reader.ReadLong("Long"); LongArray = reader.ReadLongArray("LongArray"); Boolean = reader.ReadBoolean("Boolean"); BooleanArray = reader.ReadBooleanArray("BooleanArray"); Float = reader.ReadFloat("Float"); FloatArray = reader.ReadFloatArray("FloatArray"); Double = reader.ReadDouble("Double"); DoubleArray = reader.ReadDoubleArray("DoubleArray"); Decimal = reader.ReadDecimal("Decimal"); DecimalArray = reader.ReadDecimalArray("DecimalArray"); Date = reader.ReadTimestamp("Date"); DateArray = reader.ReadTimestampArray("DateArray"); String = reader.ReadString("String"); StringArray = reader.ReadStringArray("StringArray"); Guid = reader.ReadObject <Guid>("Guid"); GuidArray = reader.ReadGuidArray("GuidArray"); }
public void ReadBinary(IBinaryReader reader) { Assert.AreEqual(1, reader.ReadByte("Byte")); Assert.AreEqual(new byte[] { 1 }, reader.ReadByteArray("ByteArray")); Assert.AreEqual('1', reader.ReadChar("Char")); Assert.AreEqual(new[] { '1' }, reader.ReadCharArray("CharArray")); Assert.AreEqual(1, reader.ReadShort("Short")); Assert.AreEqual(new short[] { 1 }, reader.ReadShortArray("ShortArray")); Assert.AreEqual(1, reader.ReadInt("Int")); Assert.AreEqual(new[] { 1 }, reader.ReadIntArray("IntArray")); Assert.AreEqual(1, reader.ReadLong("Long")); Assert.AreEqual(new long[] { 1 }, reader.ReadLongArray("LongArray")); Assert.AreEqual(true, reader.ReadBoolean("Boolean")); Assert.AreEqual(new[] { true }, reader.ReadBooleanArray("BooleanArray")); Assert.AreEqual(1, reader.ReadFloat("Float")); Assert.AreEqual(new float[] { 1 }, reader.ReadFloatArray("FloatArray")); Assert.AreEqual(1, reader.ReadDouble("Double")); Assert.AreEqual(new double[] { 1 }, reader.ReadDoubleArray("DoubleArray")); Assert.AreEqual(1, reader.ReadDecimal("Decimal")); Assert.AreEqual(new decimal?[] { 1 }, reader.ReadDecimalArray("DecimalArray")); Assert.AreEqual(Date, reader.ReadTimestamp("Timestamp")); Assert.AreEqual(new DateTime?[] { Date }, reader.ReadTimestampArray("TimestampArray")); Assert.AreEqual("1", reader.ReadString("String")); Assert.AreEqual(new[] { "1" }, reader.ReadStringArray("StringArray")); Assert.AreEqual(Guid, reader.ReadGuid("Guid")); Assert.AreEqual(new Guid?[] { Guid }, reader.ReadGuidArray("GuidArray")); Assert.AreEqual(MyEnum.Bar, reader.ReadEnum <MyEnum>("Enum")); Assert.AreEqual(new[] { MyEnum.Bar }, reader.ReadEnumArray <MyEnum>("EnumArray")); var raw = reader.GetRawReader(); Assert.AreEqual(1, raw.ReadByte()); Assert.AreEqual(new byte[] { 1 }, raw.ReadByteArray()); Assert.AreEqual('1', raw.ReadChar()); Assert.AreEqual(new[] { '1' }, raw.ReadCharArray()); Assert.AreEqual(1, raw.ReadShort()); Assert.AreEqual(new short[] { 1 }, raw.ReadShortArray()); Assert.AreEqual(1, raw.ReadInt()); Assert.AreEqual(new[] { 1 }, raw.ReadIntArray()); Assert.AreEqual(1, raw.ReadLong()); Assert.AreEqual(new long[] { 1 }, raw.ReadLongArray()); Assert.AreEqual(true, raw.ReadBoolean()); Assert.AreEqual(new[] { true }, raw.ReadBooleanArray()); Assert.AreEqual(1, raw.ReadFloat()); Assert.AreEqual(new float[] { 1 }, raw.ReadFloatArray()); Assert.AreEqual(1, raw.ReadDouble()); Assert.AreEqual(new double[] { 1 }, raw.ReadDoubleArray()); Assert.AreEqual(1, raw.ReadDecimal()); Assert.AreEqual(new decimal?[] { 1 }, raw.ReadDecimalArray()); Assert.AreEqual(Date, raw.ReadTimestamp()); Assert.AreEqual(new DateTime?[] { Date }, raw.ReadTimestampArray()); Assert.AreEqual("1", raw.ReadString()); Assert.AreEqual(new[] { "1" }, raw.ReadStringArray()); Assert.AreEqual(Guid, raw.ReadGuid()); Assert.AreEqual(new Guid?[] { Guid }, raw.ReadGuidArray()); Assert.AreEqual(MyEnum.Bar, raw.ReadEnum <MyEnum>()); Assert.AreEqual(new[] { MyEnum.Bar }, raw.ReadEnumArray <MyEnum>()); }
/// <summary> /// Reads chars /// </summary> /// <param name="reader">this</param> /// <param name="length">Number of <see cref="char"/>s to read</param> /// <returns>All the chars</returns> public static char[] ReadChars(this IBinaryReader reader, int length) { var chars = new char[length]; for (int i = 0; i < length; i++) { chars[i] = reader.ReadChar(); } return(chars); }
/// <summary> /// Deserializes a value from input stream /// /// /// <exception cref="SerializationException"></exception> /// /// </summary> /// <param name="reader">The reader to use in order to get value</param> /// <returns>Deserializable value</returns> public char Deserialize(IBinaryReader reader) { try { if (this._capacity == VALUE_FOR_UNICODE_CHAR) { return(reader.ReadUnicodeChar(this._encoding)); } if (this._capacity == VALUE_FOR_CHAR) { return(reader.ReadChar()); } } catch (Exception exception) { Guard.Throw <SerializationException>(SerializerMessanger.UNEXPECTED_DESERIALIZATION_EXCEPTION_MESSAGE, exception); } return((char)0); }
static string ReadResourceName(IBinaryReader reader, bool encrypted) { if (!encrypted) { return(reader.ReadString()); } int len = reader.ReadInt32(); if (len < 0) { throw new ApplicationException("Invalid string length"); } var sb = new StringBuilder(len); for (int i = 0; i < len; i++) { sb.Append((char)Rol3(reader.ReadChar())); } return(sb.ToString()); }
/// <summary> /// Reads an <see cref="T:System.Collections.ArrayList"/> objects from a specified <see cref="T:ExitGames.IO.IBinaryReader"/> /// </summary> /// <param name="reader">The <see cref="T:ExitGames.IO.IBinaryReader"/> to read from.</param> /// <param name="result">When this method returns true, contains the <see cref="T:System.Collections.ArrayList"/> that was read from the <see cref="T:ExitGames.IO.IBinaryReader"/>.</param> /// <returns>True if the value was successfully read; otherwise false.</returns> public static bool ReadVector(IBinaryReader reader, out object result) { short capacity = reader.ReadInt16(); if (capacity == 0) { result = new ArrayList(0); return(true); } GpType gpType = (GpType)((byte)reader.ReadChar()); int gpTypeSize = GpBinaryByteTypeConverter.GetGpTypeSize(gpType); if ((capacity < 0) || ((reader.BaseStream.Length - reader.BaseStream.Position) < (capacity * gpTypeSize))) { if (log.IsDebugEnabled) { log.DebugFormat("Invalid length for vector of type {2}: length={0}, bytesLeft={1}", new object[] { capacity, reader.BaseStream.Length - reader.BaseStream.Position, gpType }); } result = null; return(false); } ArrayList list = new ArrayList(capacity); for (int i = 0; i < capacity; i++) { object obj2; if (Read(reader, gpType, out obj2)) { list.Add(obj2); } else { result = null; return(false); } } result = list; return(true); }
/// <summary> /// Reads a <see cref="Char"/> from the current position and increments <see cref="IBinaryReader.Position"/> by 2 /// </summary> /// <param name="self">this</param> /// <returns>The char</returns> /// <exception cref="IOException">An I/O error occurs</exception> public static char ReadChar(this IBinaryReader self) { return(self.ReadChar(Encoding.UTF8)); }
/// <summary> /// Reads a <see cref="Char"/> at offset <paramref name="offset"/> /// </summary> /// <param name="reader">this</param> /// <param name="offset">Offset</param> /// <param name="encoding">Encoding</param> /// <returns>The <see cref="Char"/></returns> public static char ReadCharAt(this IBinaryReader reader, long offset, Encoding encoding) { reader.Position = offset; return(reader.ReadChar(encoding)); }
/// <summary> /// Reads a <see cref="Char"/> at offset <paramref name="offset"/> /// </summary> /// <param name="reader">this</param> /// <param name="offset">Offset</param> /// <returns>The <see cref="Char"/></returns> public static char ReadCharAt(this IBinaryReader reader, long offset) { reader.Position = offset; return(reader.ReadChar()); }
public void ReadBinary(IBinaryReader reader) { Assert.AreEqual(1, reader.ReadByte("Byte")); Assert.AreEqual(new byte[] {1}, reader.ReadByteArray("ByteArray")); Assert.AreEqual('1', reader.ReadChar("Char")); Assert.AreEqual(new[] {'1'}, reader.ReadCharArray("CharArray")); Assert.AreEqual(1, reader.ReadShort("Short")); Assert.AreEqual(new short[] {1}, reader.ReadShortArray("ShortArray")); Assert.AreEqual(1, reader.ReadInt("Int")); Assert.AreEqual(new[] {1}, reader.ReadIntArray("IntArray")); Assert.AreEqual(1, reader.ReadLong("Long")); Assert.AreEqual(new long[] {1}, reader.ReadLongArray("LongArray")); Assert.AreEqual(true, reader.ReadBoolean("Boolean")); Assert.AreEqual(new[] {true}, reader.ReadBooleanArray("BooleanArray")); Assert.AreEqual(1, reader.ReadFloat("Float")); Assert.AreEqual(new float[] {1}, reader.ReadFloatArray("FloatArray")); Assert.AreEqual(1, reader.ReadDouble("Double")); Assert.AreEqual(new double[] {1}, reader.ReadDoubleArray("DoubleArray")); Assert.AreEqual(1, reader.ReadDecimal("Decimal")); Assert.AreEqual(new decimal?[] {1}, reader.ReadDecimalArray("DecimalArray")); Assert.AreEqual(Date, reader.ReadTimestamp("Timestamp")); Assert.AreEqual(new DateTime?[] {Date}, reader.ReadTimestampArray("TimestampArray")); Assert.AreEqual("1", reader.ReadString("String")); Assert.AreEqual(new[] {"1"}, reader.ReadStringArray("StringArray")); Assert.AreEqual(Guid, reader.ReadGuid("Guid")); Assert.AreEqual(new Guid?[] {Guid}, reader.ReadGuidArray("GuidArray")); Assert.AreEqual(MyEnum.Bar, reader.ReadEnum<MyEnum>("Enum")); Assert.AreEqual(new[] {MyEnum.Bar}, reader.ReadEnumArray<MyEnum>("EnumArray")); var raw = reader.GetRawReader(); Assert.AreEqual(1, raw.ReadByte()); Assert.AreEqual(new byte[] { 1 }, raw.ReadByteArray()); Assert.AreEqual('1', raw.ReadChar()); Assert.AreEqual(new[] { '1' }, raw.ReadCharArray()); Assert.AreEqual(1, raw.ReadShort()); Assert.AreEqual(new short[] { 1 }, raw.ReadShortArray()); Assert.AreEqual(1, raw.ReadInt()); Assert.AreEqual(new[] { 1 }, raw.ReadIntArray()); Assert.AreEqual(1, raw.ReadLong()); Assert.AreEqual(new long[] { 1 }, raw.ReadLongArray()); Assert.AreEqual(true, raw.ReadBoolean()); Assert.AreEqual(new[] { true }, raw.ReadBooleanArray()); Assert.AreEqual(1, raw.ReadFloat()); Assert.AreEqual(new float[] { 1 }, raw.ReadFloatArray()); Assert.AreEqual(1, raw.ReadDouble()); Assert.AreEqual(new double[] { 1 }, raw.ReadDoubleArray()); Assert.AreEqual(1, raw.ReadDecimal()); Assert.AreEqual(new decimal?[] { 1 }, raw.ReadDecimalArray()); Assert.AreEqual(Date, raw.ReadTimestamp()); Assert.AreEqual(new DateTime?[] { Date }, raw.ReadTimestampArray()); Assert.AreEqual("1", raw.ReadString()); Assert.AreEqual(new[] { "1" }, raw.ReadStringArray()); Assert.AreEqual(Guid, raw.ReadGuid()); Assert.AreEqual(new Guid?[] { Guid }, raw.ReadGuidArray()); Assert.AreEqual(MyEnum.Bar, raw.ReadEnum<MyEnum>()); Assert.AreEqual(new[] { MyEnum.Bar }, raw.ReadEnumArray<MyEnum>()); }
static string ReadResourceName(IBinaryReader reader, bool encrypted) { if (!encrypted) return reader.ReadString(); int len = reader.ReadInt32(); if (len < 0) throw new ApplicationException("Invalid string length"); var sb = new StringBuilder(len); for (int i = 0; i < len; i++) sb.Append((char)Rol3(reader.ReadChar())); return sb.ToString(); }
/** <inheritDoc /> */ public void ReadBinary(IBinaryReader reader) { Byte = reader.ReadByte("Byte"); ByteArray = reader.ReadByteArray("ByteArray"); Char = reader.ReadChar("Char"); CharArray = reader.ReadCharArray("CharArray"); Short = reader.ReadShort("Short"); ShortArray = reader.ReadShortArray("ShortArray"); Int = reader.ReadInt("Int"); IntArray = reader.ReadIntArray("IntArray"); Long = reader.ReadLong("Long"); LongArray = reader.ReadLongArray("LongArray"); Boolean = reader.ReadBoolean("Boolean"); BooleanArray = reader.ReadBooleanArray("BooleanArray"); Float = reader.ReadFloat("Float"); FloatArray = reader.ReadFloatArray("FloatArray"); Double = reader.ReadDouble("Double"); DoubleArray = reader.ReadDoubleArray("DoubleArray"); Decimal = reader.ReadDecimal("Decimal"); DecimalArray = reader.ReadDecimalArray("DecimalArray"); Date = reader.ReadTimestamp("Date"); DateArray = reader.ReadTimestampArray("DateArray"); String = reader.ReadString("String"); StringArray = reader.ReadStringArray("StringArray"); Guid = reader.ReadObject<Guid>("Guid"); GuidArray = reader.ReadGuidArray("GuidArray"); }