Example #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EndianBinaryWriter"/> class.
 /// </summary>
 /// <param name="bitConverter">The bit converter.</param>
 /// <param name="stream">The stream.</param>
 /// <param name="encoding">The encoding.</param>
 /// <exception cref="System.ArgumentException">Stream is not writable</exception>
 public EndianBinaryWriter(EndianBitConverterBase bitConverter, Stream stream, Encoding encoding)
 {
     bitConverter = bitConverter ?? new BigEndianBitConverter();
     stream       = stream ?? new MemoryStream();
     encoding     = encoding ?? Encoding.UTF8;
     if (!stream.CanWrite)
     {
         throw new ArgumentException("Stream is not writable", nameof(stream));
     }
     BaseStream   = stream;
     BitConverter = bitConverter;
     Encoding     = encoding;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="EndianBinaryWriter"/> class.
        /// </summary>
        /// <param name="bitConverter">The bit converter.</param>
        /// <param name="stream">The stream.</param>
        /// <param name="encoding">The encoding.</param>
        /// <exception cref="System.ArgumentException">Stream is not writable</exception>
        public EndianBinaryWriter(EndianBitConverterBase bitConverter, Stream stream, Encoding encoding)
        {
            bitConverter ??= new BigEndianBitConverter();
            stream ??= new MemoryStream();
            encoding ??= Encoding.UTF8;
            if (!stream.CanWrite)
            {
                throw new ArgumentException(Properties.Resources.StreamNotWritableError, nameof(stream));
            }

            BaseStream   = stream;
            BitConverter = bitConverter;
            Encoding     = encoding;
        }
Example #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EndianBinaryReader"/> class.
        /// </summary>
        /// <param name="bitConverter">The bit converter.</param>
        /// <param name="stream">The stream.</param>
        /// <param name="encoding">The encoding.</param>
        /// <exception cref="System.ArgumentException">Stream is not readable</exception>
        public EndianBinaryReader(EndianBitConverterBase bitConverter, Stream stream, Encoding encoding)
        {
            bitConverter = bitConverter ?? new BigEndianBitConverter();
            stream       = stream ?? new MemoryStream();
            encoding     = encoding ?? Encoding.UTF8;
            if (!stream.CanRead)
            {
                throw new ArgumentException("Stream is not readable", nameof(stream));
            }
            BaseStream      = stream;
            BitConverter    = bitConverter;
            Encoding        = encoding;
            decoder         = encoding.GetDecoder();
            minBytesPerChar = 1;

            if (encoding is UnicodeEncoding)
            {
                minBytesPerChar = 2;
            }
        }
Example #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EndianBinaryReader"/> class.
 /// </summary>
 /// <param name="bitConverter">The bit converter.</param>
 /// <param name="stream">The stream.</param>
 public EndianBinaryReader(EndianBitConverterBase bitConverter, Stream stream)
     : this(bitConverter, stream, Encoding.UTF8)
 {
 }
 /// <summary>
 /// Reads the boolean.
 /// </summary>
 /// <returns>The resulting boolean</returns>
 public bool ReadBoolean()
 {
     ReadInternal(buffer, 1);
     return(EndianBitConverterBase.ToBoolean(buffer, 0));
 }