Beispiel #1
0
 public override void Write(byte[] buffer, int offset, int count)
 {
     sbyte[] sbuffer = new sbyte[buffer.Length];
     Extensions.Copy(buffer, sbuffer);
     this.ost.Write(sbuffer, offset, count);
     position += count;
 }
        public virtual int Read(sbyte[] b, int off, int len)
        {
            if (Wrapped is WrappedSystemStream)
            {
                return(((WrappedSystemStream)Wrapped).InputStream.Read(b, off, len));
            }

            if (Wrapped != null)
            {
                byte[] buffer = new byte[b.Length];
                int    num    = Wrapped.Read(buffer, off, len);
                if (num > 0)
                {
                    Extensions.Copy(buffer, b);
                }
                return((num <= 0) ? -1 : num);
            }
            int totalRead = 0;

            while (totalRead < len)
            {
                int nr = Read();
                if (nr == -1)
                {
                    return(-1);
                }
                b[off + totalRead] = (sbyte)nr;
                totalRead++;
            }
            return(totalRead);
        }
Beispiel #3
0
        public override int Read(byte[] buffer, int offset, int count)
        {
            sbyte[] sbuffer = new sbyte[buffer.Length];
            int     res     = this.ist.Read(sbuffer, offset, count);

            Extensions.Copy(sbuffer, buffer);
            if (res != -1)
            {
                position += res;
                return(res);
            }
            else
            {
                return(0);
            }
        }
        public int Read(sbyte[] sbuffer)
        {
            if (sbuffer.Length == 0)
            {
                return(0);
            }

            byte[] buffer = new byte[sbuffer.Length];
            int    r      = stream.Read(buffer, 0, buffer.Length);

            if (r > 0)
            {
                Extensions.Copy(buffer, sbuffer);
                return(r);
            }

            return(-1);
        }