com.pixelmed.network
Class CompositeResponseHandler

java.lang.Object
  extended by com.pixelmed.network.ReceivedDataHandler
      extended by com.pixelmed.network.CompositeResponseHandler
Direct Known Subclasses:
MoveSOPClassSCU.CMoveResponseHandler, StorageSOPClassSCU.CStoreResponseHandler, VerificationSOPClassSCU.CEchoResponseHandler

public abstract class CompositeResponseHandler
extends ReceivedDataHandler

This abstract class provides a mechanism to process each PDU of a composite response as it is received, such as for evaluating the status of the response for success.

Typically a private sub-class would be declared and instantiated with overriding methods to evaluate the success or failure of a storage or query or retrieve response.

See Also:
ReceivedDataHandler, StorageSOPClassSCU, FindSOPClassSCU

Field Summary
protected  boolean allowData
           
protected  byte[] commandReceived
           
protected  byte[] dataReceived
           
protected  int status
           
protected  boolean success
           
 
Fields inherited from class com.pixelmed.network.ReceivedDataHandler
debugLevel, done, release
 
Constructor Summary
CompositeResponseHandler(int debugLevel)
          Construct a handler to process each PDU of a composite response as it is received, evaluating the status of the response for success.
 
Method Summary
static String dumpAttributeListFromCommandOrData(byte[] bytes, String transferSyntaxUID)
          Extract an AttributeList from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.
protected abstract  void evaluateStatusAndSetSuccess(AttributeList list)
          Extract the status information from a composite response and set the status flag accordingly.
static AttributeList getAttributeListFromCommandOrData(byte[] bytes, String transferSyntaxUID, int debugLevel)
          Extract an AttributeList from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.
 int getStatus()
          Get the response status Valid only after first calling evaluateStatusAndSetSuccess()
protected  void makeUseOfDataSet(AttributeList list)
          Ignore any data set in the composite response (unless this method is overridden).
 void sendPDataIndication(PDataPDU pdata, Association association)
          The code handling the reception of data on an Association calls this method to indicate that a PDU has been received (a P-DATA-INDICATION).
 boolean wasSuccessful()
          Does the response include an indication of success ?
 
Methods inherited from class com.pixelmed.network.ReceivedDataHandler
dumpPDVList, isDone, isToBeReleased, setDone, setRelease
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

commandReceived

protected byte[] commandReceived

dataReceived

protected byte[] dataReceived

success

protected boolean success

allowData

protected boolean allowData

status

protected int status
Constructor Detail

CompositeResponseHandler

public CompositeResponseHandler(int debugLevel)
Construct a handler to process each PDU of a composite response as it is received, evaluating the status of the response for success.

Parameters:
debugLevel - 0 for no debugging, > 0 for increasingly verbose debugging
Method Detail

getAttributeListFromCommandOrData

public static AttributeList getAttributeListFromCommandOrData(byte[] bytes,
                                                              String transferSyntaxUID,
                                                              int debugLevel)
                                                       throws DicomNetworkException,
                                                              DicomException,
                                                              IOException
Extract an AttributeList from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.

Parameters:
bytes - the concatenated PDU bytes up to and including the last fragment
transferSyntaxUID - the Transfer Syntax to use to interpret the bytes
debugLevel - integer debug level
Throws:
IOException
DicomException
DicomNetworkException

dumpAttributeListFromCommandOrData

public static String dumpAttributeListFromCommandOrData(byte[] bytes,
                                                        String transferSyntaxUID)
                                                 throws DicomNetworkException,
                                                        DicomException,
                                                        IOException
Extract an AttributeList from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.

Parameters:
bytes - the concatenated PDU bytes up to and including the last fragment
transferSyntaxUID - the Transfer Syntax to use to interpret the bytes
Throws:
IOException
DicomException
DicomNetworkException

sendPDataIndication

public void sendPDataIndication(PDataPDU pdata,
                                Association association)
                         throws DicomNetworkException,
                                DicomException,
                                IOException
The code handling the reception of data on an Association calls this method to indicate that a PDU has been received (a P-DATA-INDICATION).

Specified by:
sendPDataIndication in class ReceivedDataHandler
Parameters:
pdata - the PDU that was received
association - the association on which the PDU was received
Throws:
IOException
DicomException
DicomNetworkException

evaluateStatusAndSetSuccess

protected abstract void evaluateStatusAndSetSuccess(AttributeList list)
Extract the status information from a composite response and set the status flag accordingly.

Parameters:
list - the list of Attributes extracted from the bytes of the PDU(s)

makeUseOfDataSet

protected void makeUseOfDataSet(AttributeList list)
Ignore any data set in the composite response (unless this method is overridden).

Parameters:
list - the list of Attributes extracted from the bytes of the PDU(s)

wasSuccessful

public boolean wasSuccessful()
Does the response include an indication of success ?


getStatus

public int getStatus()
Get the response status Valid only after first calling evaluateStatusAndSetSuccess()