CADI.Server.LogicalTarget.JPEG2000.RateDistortion
Class FileOrderDelivery

java.lang.Object
  extended by CADI.Server.LogicalTarget.JPEG2000.RateDistortion.FileOrderDelivery

public class FileOrderDelivery
extends java.lang.Object

This class implements the delivery of the requested WOI following the order of the codestream saved in the file. None transcoding is performed.

Usage example:
  construct
  runResponseParameters
  getResponseViewWindow
  getQuality
  runResponseData
  getJPIPMessageData
  getEORReasonCode

Version:
1.0.1 2008/09/08
Author:
Group on Interactive Coding of Images (GICI)

Field Summary
private  int EORReasonCode
          Definition in ServerLogicalTargetManager.EORReasonCode.
private  HTTPResponseSender httpResponseSender
          Definition in Worker.httpResponseSender.
private  JPCParameters jpcParameters
          Definition in JP2LogicalTarget.jpcParameters
private  JPIPMessageEncoder jpipMessageEncoder
          Is an object used to build the JPIP Messages.
private  java.util.ArrayList<JPIPMessageHeader> jpipMessageHeaders
          Definition in ServerLogicalTargetManager.jpipMessageHeaders.
private  int layers
          Some internal attributes for passing values between diferents methods.
private  JP2LogicalTarget logicalTarget
          Definition in ServerLogicalTargetManager.EORReasonCode.
private  long maximumResponseLength
          Definition in DataLimitField.len
private  int maxNumLayers
          Definition in CODParameters.numLayers
private  int progressionOrder
          Definition in CODParameters.progressionOrder
private  int quality
          Definition in ServerLogicalTargetManager.quality.
private  java.util.ArrayList<java.lang.Long> relevantPrecincts
          Is an array list which contains precinct identifiers.
private  java.util.ArrayList<java.lang.Long>[][] relevantPrecinctsR_CP
          Is a two-dimension array of array lists which contains precinct identifiers.
private  int[][] resolutionPrecinctHeights
          Definition in CODParameters.precinctHeights
private  int[][] resolutionPrecinctWidths
          Definition in CODParameters.precinctWidths
private  long responseLength
          It is a temporal attribute to accumulate the response length which is sending to the client.
private  ViewWindowField responseViewWindow
          Definition in ServerLogicalTargetManager.responseViewWindow.
private  JPCServerCache serverCache
          This attribute contains the cache data for the client.
private  int[] WTLevels
          Definition in CODParameters.WTLevels
private  int XOsize
          Definition in SIZParameters.XOsize
private  int xSize
          Definition in SIZParameters.xSize
private  int XTOsize
          Definition in SIZParameters.XTOsize
private  int YOsize
          Definition in SIZParameters.YOsize
private  int ySize
          Definition in SIZParameters.ySize
private  int YTOsize
          Definition in SIZParameters.YTOsize
private  int zSize
          Definition in SIZParameters.zSize
 
Constructor Summary
FileOrderDelivery(JP2LogicalTarget logicalTarget, JPCServerCache serverCache)
          Constructor.
 
Method Summary
 int getEORReasonCode()
          Returns the EORReasonCode attribute.
 java.util.ArrayList<JPIPMessageHeader> getJPIPMessageHeaders()
          Returns the jpipMessageHeaders attribute.
 int getQuality()
          Returns the quality attribute.
 ViewWindowField getResponseViewWindow()
          Returns the responseViewWindow attribute.
 void list(java.io.PrintStream out)
          Prints this File Order Delivery out to the specified output stream.
 void runResponseData(HTTPResponseSender httpResponseSender, JPIPMessageEncoder jpipMessageEncoder, java.util.ArrayList<JPIPMessageHeader> jpipMessageHeaders, long maximumResponseLength)
           
private  void runResponseDataLayerPosition(java.util.ArrayList<java.lang.Long> relevantPrecincts)
           
private  void runResponseDataPositionLayer(java.util.ArrayList<java.lang.Long> relevantPrecincts)
           
private  void runResponseDataRLCP(java.util.ArrayList<java.lang.Long>[][] relevantPrecinctsR_CP)
           
 void runResponseParameters(ViewWindowField viewWindow)
          Calculates the WOI which will be sent to the client using a layers-based rate-distortion method (file is delivery in the same order that is is saved).
 void setDeliveryProgressionOrder(int progressionOrder)
          Sets the progressionOrder attribute.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

httpResponseSender

private HTTPResponseSender httpResponseSender
Definition in Worker.httpResponseSender.


jpipMessageEncoder

private JPIPMessageEncoder jpipMessageEncoder
Is an object used to build the JPIP Messages.


jpipMessageHeaders

private java.util.ArrayList<JPIPMessageHeader> jpipMessageHeaders
Definition in ServerLogicalTargetManager.jpipMessageHeaders.


responseViewWindow

private ViewWindowField responseViewWindow
Definition in ServerLogicalTargetManager.responseViewWindow.


quality

private int quality
Definition in ServerLogicalTargetManager.quality.


EORReasonCode

private int EORReasonCode
Definition in ServerLogicalTargetManager.EORReasonCode.


logicalTarget

private JP2LogicalTarget logicalTarget
Definition in ServerLogicalTargetManager.EORReasonCode.


serverCache

private JPCServerCache serverCache
This attribute contains the cache data for the client.

This reference is passed from the


maximumResponseLength

private long maximumResponseLength
Definition in DataLimitField.len


responseLength

private long responseLength
It is a temporal attribute to accumulate the response length which is sending to the client.


jpcParameters

private JPCParameters jpcParameters
Definition in JP2LogicalTarget.jpcParameters


zSize

private int zSize
Definition in SIZParameters.zSize


ySize

private int ySize
Definition in SIZParameters.ySize


xSize

private int xSize
Definition in SIZParameters.xSize


YTOsize

private int YTOsize
Definition in SIZParameters.YTOsize


XTOsize

private int XTOsize
Definition in SIZParameters.XTOsize


YOsize

private int YOsize
Definition in SIZParameters.YOsize


XOsize

private int XOsize
Definition in SIZParameters.XOsize


WTLevels

private int[] WTLevels
Definition in CODParameters.WTLevels


maxNumLayers

private int maxNumLayers
Definition in CODParameters.numLayers


progressionOrder

private int progressionOrder
Definition in CODParameters.progressionOrder


resolutionPrecinctHeights

private int[][] resolutionPrecinctHeights
Definition in CODParameters.precinctHeights


resolutionPrecinctWidths

private int[][] resolutionPrecinctWidths
Definition in CODParameters.precinctWidths


layers

private int layers
Some internal attributes for passing values between diferents methods. They contains the view window attributes, then for a full description see ViewWindowField


relevantPrecincts

private java.util.ArrayList<java.lang.Long> relevantPrecincts
Is an array list which contains precinct identifiers. This attribute is used to save the order in which precincts will be sent.


relevantPrecinctsR_CP

private java.util.ArrayList<java.lang.Long>[][] relevantPrecinctsR_CP
Is a two-dimension array of array lists which contains precinct identifiers. This attribute is used to save the order in which precincts will be sent.

The first index of the array is the tile and the second one is the resolution level.

Constructor Detail

FileOrderDelivery

public FileOrderDelivery(JP2LogicalTarget logicalTarget,
                         JPCServerCache serverCache)
Constructor.

Parameters:
logicalTarget - definition in logicalTarget.
serverCache - definition in serverCache.
Method Detail

setDeliveryProgressionOrder

public void setDeliveryProgressionOrder(int progressionOrder)
Sets the progressionOrder attribute.

Parameters:
progressionOrder - definition in progressionOrder.

runResponseParameters

public void runResponseParameters(ViewWindowField viewWindow)
                           throws java.lang.IllegalArgumentException
Calculates the WOI which will be sent to the client using a layers-based rate-distortion method (file is delivery in the same order that is is saved).

Parameters:
viewWindow - the requested Window Of Interest
Throws:
java.lang.IllegalArgumentException

runResponseData

public void runResponseData(HTTPResponseSender httpResponseSender,
                            JPIPMessageEncoder jpipMessageEncoder,
                            java.util.ArrayList<JPIPMessageHeader> jpipMessageHeaders,
                            long maximumResponseLength)
                     throws ErrorException
Parameters:
httpResponseSender - definition in httpResponseSender
jpipMessageEncoder - definition in jpipMessageEncoder
jpipMessageHeaders - definition in jpipMessageHeaders
maximumResponseLength - definition in maximumResponseLength
Throws:
ErrorException
java.io.IOException

getEORReasonCode

public int getEORReasonCode()
Returns the EORReasonCode attribute.

Returns:
the EORReasonCode attribute.

getResponseViewWindow

public ViewWindowField getResponseViewWindow()
Returns the responseViewWindow attribute.

Returns:
the responseViewWindow attribute.

getJPIPMessageHeaders

public java.util.ArrayList<JPIPMessageHeader> getJPIPMessageHeaders()
Returns the jpipMessageHeaders attribute.

Returns:
the jpipMessageHeaders attribute.

getQuality

public int getQuality()
Returns the quality attribute.

Returns:
the quality attribute.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

list

public void list(java.io.PrintStream out)
Prints this File Order Delivery out to the specified output stream. This method is useful for debugging.

Parameters:
out - an output stream.

runResponseDataLayerPosition

private void runResponseDataLayerPosition(java.util.ArrayList<java.lang.Long> relevantPrecincts)
                                   throws ErrorException
Throws:
ErrorException

runResponseDataPositionLayer

private void runResponseDataPositionLayer(java.util.ArrayList<java.lang.Long> relevantPrecincts)
                                   throws ErrorException
Throws:
ErrorException

runResponseDataRLCP

private void runResponseDataRLCP(java.util.ArrayList<java.lang.Long>[][] relevantPrecinctsR_CP)
                          throws ErrorException
Throws:
ErrorException


CADI - Copyright (C) 2007
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Group on Interactive Coding of Images (GICI) (contact)