FileDocCategorySizeDatePackage
CompressingSocket.javaAPI DocExample1489Thu Nov 08 00:23:26 GMT 2001com.ora.rmibook.chapter2.sockets

CompressingSocket.java

package com.ora.rmibook.chapter2.sockets;


import java.net.*;
import java.io.*;
import java.util.zip.*;


public class CompressingSocket extends Socket {
    private InputStream _compressingInputStream;
    private OutputStream _compressingOutputStream;

    public CompressingSocket()
        throws IOException {
    }

    public CompressingSocket(String host, int port)
        throws IOException {
        super (host, port);
    }

    public InputStream getInputStream()
        throws IOException {
        if (null == _compressingInputStream) {
            InputStream originalInputStream = super.getInputStream();

            _compressingInputStream = new CompressingInputStream(originalInputStream);
        }
        return _compressingInputStream;
    }

    public OutputStream getOutputStream()
        throws IOException {
        if (null == _compressingOutputStream) {
            OutputStream originalOutputStream = super.getOutputStream();

            _compressingOutputStream = new CompressingOutputStream(originalOutputStream);
        }
        return _compressingOutputStream;
    }

    public synchronized void close()
        throws IOException {
        if (null != _compressingOutputStream) {
            _compressingOutputStream.flush();
            _compressingOutputStream.close();
        }
        if (null != _compressingInputStream) {
            _compressingInputStream.close();
        }
    }
}