Exemplo n.º 1
0
		private void PrepareNextPacket() {
			byte num = (byte)this.baseStream.ReadByte();
			byte num2 = (byte)this.baseStream.ReadByte();
			byte num3 = (byte)this.baseStream.ReadByte();
			int len = ( num + ( num2 << 8 ) ) + ( num3 << 0x10 );
			this.baseStream.ReadByte();
			int num5 = ( this.baseStream.ReadByte() + ( this.baseStream.ReadByte() << 8 ) ) + ( this.baseStream.ReadByte() << 0x10 );
			if( num5 == 0 ) {
				num5 = len;
				this.zInStream = null;
			} else {
				this.ReadNextPacket( len );
				MemoryStream stream = new MemoryStream( this.inBuffer );
				this.zInStream = new ZInputStream( stream );
				this.zInStream.maxInput = len;
			}
			this.inPos = 0;
			this.maxInPos = num5;
		}
Exemplo n.º 2
0
		public override int Read( byte[] buffer, int offset, int count ) {
			int num2;
			if( buffer == null ) {
				throw new ArgumentNullException( "buffer", Resources.BufferCannotBeNull );
			}
			if( ( offset < 0 ) || ( offset >= buffer.Length ) ) {
				throw new ArgumentOutOfRangeException( "offset", Resources.OffsetMustBeValid );
			}
			if( ( offset + count ) > buffer.Length ) {
				throw new ArgumentException( Resources.BufferNotLargeEnough, "buffer" );
			}
			if( this.inPos == this.maxInPos ) {
				this.PrepareNextPacket();
			}
			int len = Math.Min( count, this.maxInPos - this.inPos );
			if( this.zInStream != null ) {
				num2 = this.zInStream.read( buffer, offset, len );
			} else {
				num2 = this.baseStream.Read( buffer, offset, len );
			}
			this.inPos += num2;
			if( this.inPos == this.maxInPos ) {
				this.zInStream = null;
				this.inBufferRef.Target = this.inBuffer;
				this.inBuffer = null;
			}
			return num2;
		}