org.jafer.transport
Class PDUDriver

java.lang.Object
  extended by org.jafer.transport.PDUDriver

public class PDUDriver
extends java.lang.Object

Used by ZClient and ZServer Session for Z39.50 input/output - each session has it's own PDUDriver. Includes methods for get/send PDU and close. I/O errors throw org.jafer.util.ConnectionException - caught and handled by the session object.

Version:
1.0
Author:
Antony Corfield; Matthew Dovey; Colin Tatham

Field Summary
private  java.util.Hashtable closeReason
           
private static long DATA_TIMEOUT
           
private  java.io.BufferedOutputStream dest
           
private static java.util.logging.Logger logger
           
(package private)  boolean reentrant
           
private  java.lang.String sessionName
           
private  java.net.Socket socket
           
private  java.io.BufferedInputStream src
           
 
Constructor Summary
PDUDriver(java.lang.String sessionName, java.net.Socket socket, int timeout)
           
 
Method Summary
private  java.lang.String dumpPDU(z3950.v3.PDU pdu)
           
 asn1.BEREncoding getBEREncoding()
           
private  java.lang.String getCloseReason(int k)
           
 z3950.v3.PDU getPDU()
           
 void initClose(int reason)
           
private  java.util.Hashtable loadCloseReason(java.util.Hashtable closeReason)
           
 void respClose(z3950.v3.PDU pduRequest)
           
 void sendPDU(z3950.v3.PDU pduResponse)
           
private  void waitClosePDU()
           
private  z3950.v3.PDU waitForPDU()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DATA_TIMEOUT

private static long DATA_TIMEOUT

logger

private static java.util.logging.Logger logger

closeReason

private java.util.Hashtable closeReason

socket

private java.net.Socket socket

src

private java.io.BufferedInputStream src

dest

private java.io.BufferedOutputStream dest

sessionName

private java.lang.String sessionName

reentrant

boolean reentrant
Constructor Detail

PDUDriver

public PDUDriver(java.lang.String sessionName,
                 java.net.Socket socket,
                 int timeout)
          throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getBEREncoding

public asn1.BEREncoding getBEREncoding()
                                throws ConnectionException
Throws:
ConnectionException

dumpPDU

private java.lang.String dumpPDU(z3950.v3.PDU pdu)

getPDU

public z3950.v3.PDU getPDU()
                    throws ConnectionException
Throws:
ConnectionException

sendPDU

public void sendPDU(z3950.v3.PDU pduResponse)
             throws ConnectionException
Throws:
ConnectionException

initClose

public void initClose(int reason)
               throws ConnectionException
Throws:
ConnectionException

respClose

public void respClose(z3950.v3.PDU pduRequest)
               throws ConnectionException
Throws:
ConnectionException

waitClosePDU

private void waitClosePDU()

waitForPDU

private z3950.v3.PDU waitForPDU()
                         throws ConnectionException
Throws:
ConnectionException

getCloseReason

private java.lang.String getCloseReason(int k)

loadCloseReason

private java.util.Hashtable loadCloseReason(java.util.Hashtable closeReason)