annotate IO/BinaryReaderBigEndian.cs @ 32:267cd5ce66ff

Add "Position" property to Big-Endian binary reader no-open-ticket
author IBBoard <dev@ibboard.co.uk>
date Sun, 17 May 2009 18:54:11 +0000
parents 23fd4247fc1c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
1 // This file (FileStreamstream.cs) is a part of the IBBoard project and is copyright 2009 IBBoard
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
2 //
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
3 // The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license.
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
4 //
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
5
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
6 using System;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
7 using System.Collections.Generic;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
8 using System.IO;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
9 using System.Text;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
10
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
11 namespace IBBoard
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
12 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13 /// <summary>
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14 /// A custom replacement for the BinaryReader that reads numbers as big-endian and also provides methods to read byte delimited strings.
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
15 /// </summary>
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
16 public class BinaryReaderBigEndian
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
17 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
18 private Stream stream;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
19 private Encoding encoding;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
20
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
21 public BinaryReaderBigEndian(Stream input) : this(input, Encoding.UTF8)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
22 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
23 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
24
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
25 public BinaryReaderBigEndian(Stream input, Encoding encoding)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
26 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
27 stream = input;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
28 this.encoding = encoding;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
29 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
30
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
31 public byte[] ReadBytes(int byteCount)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
32 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
33 byte[] bytes = new byte[byteCount];
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
34 stream.Read(bytes, 0, byteCount);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
35 return bytes;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
36 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
37
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
38 private byte[] ReadBytesForNumber(int byteCount)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
39 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
40 byte[] bytes = ReadBytes(byteCount);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
41 int halfCount = byteCount / 2;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
42
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
43 for (int i = 0, j = byteCount - 1; i < halfCount; i++, j--)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
44 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
45 byte temp = bytes[i];
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
46 bytes[i] = bytes[j];
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
47 bytes[j] = temp;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
48 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
49
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
50 return bytes;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
51 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
52
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
53 public byte ReadByte()
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
54 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
55 return (byte)stream.ReadByte();
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
56 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
57
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
58 public short ReadShort()
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
59 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
60 return BitConverter.ToInt16(ReadBytesForNumber(2), 0);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
61 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
62
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
63 public ushort ReadUShort()
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
64 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
65 return BitConverter.ToUInt16(ReadBytesForNumber(2), 0);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
66 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
67
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
68 public int ReadInt()
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
69 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
70 return BitConverter.ToInt32(ReadBytesForNumber(4), 0);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
71 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
72
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
73 public uint ReadUInt()
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
74 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
75 return BitConverter.ToUInt32(ReadBytesForNumber(4), 0);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
76 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
77
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
78 public string ReadDelimitedString(byte delimiter)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
79 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
80 List<byte> bytes = new List<byte>();
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
81
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
82 while (!EndOfStream)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
83 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
84 byte b = ReadByte();
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
85
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
86 if (b!=delimiter)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
87 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
88 bytes.Add(b);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
89 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
90 else
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
91 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
92 break;
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
93 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
94 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
95
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
96 return encoding.GetString(bytes.ToArray());
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
97 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
98
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
99 public string ReadString(int length)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
100 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
101 byte[] bytes = ReadBytes(length);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
102 return encoding.GetString(bytes);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
103 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
104
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
105 public string ReadUShortLengthString()
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
106 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
107 ushort length = ReadUShort();
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
108 return ReadString(length);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
109 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
110
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
111 public string ReadIntLengthString()
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
112 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
113 int length = ReadInt();
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
114 return ReadString(length);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
115 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
116
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
117 public void Seek(int distance)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
118 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
119 stream.Seek(distance, SeekOrigin.Begin);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
120 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
121
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
122 public void Move(int distance)
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
123 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
124 stream.Seek(distance, SeekOrigin.Current);
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
125 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
126
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
127 public void Close()
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
128 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
129 stream.Close();
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
130 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
131
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
132 public bool EndOfStream
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
133 {
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
134 get { return stream.Length - 1 == stream.Position; }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
135 }
32
267cd5ce66ff Add "Position" property to Big-Endian binary reader
IBBoard <dev@ibboard.co.uk>
parents: 30
diff changeset
136
267cd5ce66ff Add "Position" property to Big-Endian binary reader
IBBoard <dev@ibboard.co.uk>
parents: 30
diff changeset
137 public long Position
267cd5ce66ff Add "Position" property to Big-Endian binary reader
IBBoard <dev@ibboard.co.uk>
parents: 30
diff changeset
138 {
267cd5ce66ff Add "Position" property to Big-Endian binary reader
IBBoard <dev@ibboard.co.uk>
parents: 30
diff changeset
139 get { return stream.Position; }
267cd5ce66ff Add "Position" property to Big-Endian binary reader
IBBoard <dev@ibboard.co.uk>
parents: 30
diff changeset
140 }
30
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
141 }
23fd4247fc1c * Add "big-endian" binary reader that reads ints/shorts in big-endian format
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
142 }