using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Net; namespace ZeroLevel.Services.Serialization { public interface IBinaryReader : IDisposable { bool ReadBoolean(); char ReadChar(); byte ReadByte(); byte[] ReadBytes(); Double ReadDouble(); float ReadFloat(); short ReadShort(); ushort ReadUShort(); Int32 ReadInt32(); UInt32 ReadUInt32(); Int64 ReadLong(); UInt64 ReadULong(); string ReadString(); Guid ReadGuid(); DateTime? ReadDateTime(); decimal ReadDecimal(); TimeSpan ReadTimeSpan(); IPAddress ReadIP(); IPEndPoint ReadIPEndpoint(); #region Extensions T Read() where T : IBinarySerializable; T ReadCompatible(); List ReadCollection() where T : IBinarySerializable, new(); Dictionary ReadDictionary(); ConcurrentDictionary ReadDictionaryAsConcurrent(); List ReadStringCollection(); List ReadGuidCollection(); List ReadDateTimeCollection(); List ReadCharCollection(); List ReadInt64Collection(); List ReadInt32Collection(); List ReadDoubleCollection(); List ReadDecimalCollection(); List ReadTimeSpanCollection(); List ReadFloatCollection(); List ReadBooleanCollection(); List ReadByteCollection(); List ReadByteArrayCollection(); List ReadIPCollection(); List ReadIPEndPointCollection(); List ReadUInt64Collection(); List ReadUInt32Collection(); List ReadShortCollection(); List ReadUShortCollection(); #endregion Extensions Stream Stream { get; } } }