| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- namespace EPD.Data
 
- {
 
-     class ByteReader
 
-     {
 
-         private byte[] buffer;
 
-         private int idx;
 
-         private int length;
 
-         public int Length => length;
 
-         public ByteReader(byte[] data, int len)
 
-         {
 
-             buffer = new byte[len];
 
-             Buffer.BlockCopy(data, 0, buffer, 0, len);
 
-             length = len;
 
-             idx = 0;
 
-         }
 
-         public void Append(byte[] data, int len)
 
-         {
 
-             var buf = new byte[Length + len];
 
-             Buffer.BlockCopy(buffer, 0, buf, 0, Length);
 
-             Buffer.BlockCopy(data, 0, buf, Length, len);
 
-             buffer = buf;
 
-             length += len;
 
-         }
 
-         public bool Reset(int curIdx = 0)
 
-         {
 
-             if (curIdx < length)
 
-                 idx = curIdx;
 
-             return idx == curIdx;
 
-         }
 
-         public bool ReadByte(out byte data)
 
-         {
 
-             data = buffer[idx];
 
-             idx++;
 
-             return true;
 
-         }
 
-         public bool ReadBytes(byte[] buf, int len)
 
-         {
 
-             if (idx + len <= length)
 
-             {
 
-                 Buffer.BlockCopy(buffer, (int)idx, buf, 0, (int)len);
 
-                 idx += len;
 
-                 return true;
 
-             }
 
-             return false;
 
-         }
 
-         public bool ReadInt(out int data)
 
-         {
 
-             data = 0;
 
-             if (idx + 4 <= length)
 
-             {
 
-                 data = BitConverter.ToInt32(buffer, (int)idx);
 
-                 idx += 4;
 
-                 return true;
 
-             }
 
-             return false;
 
-         }
 
-         public bool ReadUInt16(out UInt16 data)
 
-         {
 
-             data = 0;
 
-             if (idx + 2 <= length)
 
-             {
 
-                 data = BitConverter.ToUInt16(buffer, (int)idx);
 
-                 idx += 2;
 
-                 return true;
 
-             }
 
-             return false;
 
-         }
 
-         public bool ReadInt64(out Int64 data)
 
-         {
 
-             data = 0;
 
-             if (idx + 8 <= length)
 
-             {
 
-                 data = BitConverter.ToInt64(buffer, (int)idx);
 
-                 idx += 8;
 
-                 return true;
 
-             }
 
-             return false;
 
-         }
 
-         public bool ReadString(out string str, int len)
 
-         {
 
-             str = System.Text.Encoding.Default.GetString(buffer, idx, len);
 
-             str = str.Substring(0, str.IndexOf('\0'));
 
-             idx += len;
 
-             return true;
 
-         }
 
-     }
 
- }
 
 
  |