jcifs.util.transport
Class Transport

java.lang.Object
  extended byjcifs.util.transport.Transport
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
SmbTransport

public abstract class Transport
extends java.lang.Object
implements java.lang.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  java.util.HashMap response_map
           
 java.lang.Object setupDiscoLock
           
 
Constructor Summary
Transport()
           
 
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(java.io.InputStream in, byte[] b, int off, int len)
           
 void run()
           
 void sendrecv(Request request, Response response, long timeout)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

response_map

protected java.util.HashMap response_map

setupDiscoLock

public java.lang.Object setupDiscoLock
Constructor Detail

Transport

public Transport()
Method Detail

readn

public static int readn(java.io.InputStream in,
                        byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException
Throws:
java.io.IOException

makeKey

protected abstract void makeKey(Request request)
                         throws java.io.IOException
Throws:
java.io.IOException

peekKey

protected abstract Request peekKey()
                            throws java.io.IOException
Throws:
java.io.IOException

doSend

protected abstract void doSend(Request request)
                        throws java.io.IOException
Throws:
java.io.IOException

doRecv

protected abstract void doRecv(Response response)
                        throws java.io.IOException
Throws:
java.io.IOException

doSkip

protected abstract void doSkip()
                        throws java.io.IOException
Throws:
java.io.IOException

sendrecv

public void sendrecv(Request request,
                     Response response,
                     long timeout)
              throws java.io.IOException
Throws:
java.io.IOException

doConnect

protected abstract void doConnect()
                           throws java.lang.Exception
Throws:
java.lang.Exception

doDisconnect

protected abstract void doDisconnect(boolean hard)
                              throws java.io.IOException
Throws:
java.io.IOException

connect

public void connect(long timeout)
             throws TransportException
Throws:
TransportException

disconnect

public void disconnect(boolean hard)
                throws java.io.IOException
Throws:
java.io.IOException

run

public void run()
Specified by:
run in interface java.lang.Runnable

toString

public java.lang.String toString()