jcifs.util.transport

Class Transport

Implemented Interfaces:
Runnable
Known Direct Subclasses:
SmbTransport

public abstract class Transport
extends java.lang.Object
implements Runnable

This class simplifies communication for protocols that support multiplexing requests. It encapsulates a stream and some protocol knowledge (provided by a concrete subclass) so that connecting, disconnecting, sending, and receiving can be syncronized properly. Apparatus is provided to send and receive requests concurrently.

Field Summary

protected HashMap
response_map
Object
setupDiscoLock

Method Summary

void
connect(long timeout)
void
disconnect(boolean hard)
protected abstract void
doConnect()
protected abstract void
doDisconnect(boolean hard)
protected abstract void
doRecv(Response response)
protected abstract void
doSend(Request request)
protected abstract void
doSkip()
protected abstract void
makeKey(Request request)
protected abstract Request
peekKey()
static int
readn(InputStream in, byte[] b, int off, int len)
void
run()
void
sendrecv(Request request, Response response, long timeout)
String
toString()

Field Details

response_map

protected HashMap response_map

setupDiscoLock

public Object setupDiscoLock

Method Details

connect

public void connect(long timeout)
            throws TransportException

disconnect

public void disconnect(boolean hard)
            throws IOException

doConnect

protected abstract void doConnect()
            throws Exception

doDisconnect

protected abstract void doDisconnect(boolean hard)
            throws IOException

doRecv

protected abstract void doRecv(Response response)
            throws IOException

doSend

protected abstract void doSend(Request request)
            throws IOException

doSkip

protected abstract void doSkip()
            throws IOException

makeKey

protected abstract void makeKey(Request request)
            throws IOException

peekKey

protected abstract Request peekKey()
            throws IOException

readn

public static int readn(InputStream in,
                        byte[] b,
                        int off,
                        int len)
            throws IOException

run

public void run()

sendrecv

public void sendrecv(Request request,
                     Response response,
                     long timeout)
            throws IOException

toString

public String toString()