RpcOutputStream extends FileOutputStream { private void readHeader(InputStream inStream, RpcCRC32Checksum crc) throws IOException { CheckedInputStream in = new CheckedInputStream(inStream, crc); crc.reset(); if (readUShort(in) != GZIP_MAGIC) { throw new IOException("Not in GZIP format"); } if (readUByte(in) != 8) { throw new IOException("Unsupported compression method"); } int flg = readUByte(in); skipBytes(in, 6); if ((flg & FEXTRA) == FEXTRA) { skipBytes(in, readUShort(in)); } if ((flg & FNAME) == FNAME) { while (readUByte(in) != 0) ; } if ((flg & FCOMMENT) == FCOMMENT) { while (readUByte(in) != 0) ; } if ((flg & FHCRC) == FHCRC) { int v = (int) crc.getValue() & 0xffff; if (readUShort(in) != v) { throw new IOException("Corrupt GZIP header"); } } } RpcOutputStream(RpcPerforceFile file);  RpcOutputStream(RpcPerforceFile file, RpcConnection rpcConnection, boolean useLocalDigester);  RpcOutputStream(RpcPerforceFile file, Charset charset, boolean isUnicodeServer,
	                       boolean useLocalDigester);  RpcOutputStream(RpcPerforceFile file, Charset charset, boolean isUnicodeServer,
	                       boolean useLocalDigester, int filesys_utf8bom); @Override void close(); long write(Map<String, Object> map); @Override void write(byte[] sourceBytes, int off, int len); @Override void write(byte[] b); long writeConverted(byte[] sourceBytes); @Override void write(int b); RpcPerforceFile getFile(); String getServerDigest(); void setServerDigest(String serverDigest); MD5Digester getLocalDigester(); void setLocalDigester(MD5Digester localDigester);  }
@Test public void testReadHeader() throws Exception { }