Ejemplo n.º 1
0
 public virtual ulong Read(byte[] destination, ulong start = 0)
 {
     lock (Sync)
     {
         ulong  length = BufferedReadable;
         byte[] data   = Buffer.Read(length);
         PrimitiveBuffer.Copy(data, 0, destination, start, length);
         ReadCount += length;
         return(length);
     }
 }
Ejemplo n.º 2
0
 public virtual ulong Read(byte[] destination, ulong start = 0)
 {
     lock (Sync)
     {
         ulong  length = Math.Min(BufferedReadable, (ulong)destination.LongLength);
         byte[] data   = Readable.Read(length);
         PrimitiveBuffer.Copy(data, 0, destination, start, length);
         ReadCount += length;
         return(length);
     }
 }
Ejemplo n.º 3
0
        public string ReadStringZT(Encoding encoding, byte size)
        {
            PrimitiveBuffer buffer = new PrimitiveBuffer();
            ulong           block  = size / 8u;

            while (true)
            {
                byte[] read = NonBlockingUnsafeRead(block);
                if (read == null || read.All((v) => v == 0))
                {
                    break;
                }
                buffer.Write(read);
            }
            return(encoding.GetString(buffer.Read(buffer.Length)));
        }