]> granicus.if.org Git - openjpeg/commitdiff
opj_viewer enabled stateless requests
authorKaori Hagihara <khagihara@users.noreply.github.com>
Fri, 16 Sep 2011 14:17:45 +0000 (14:17 +0000)
committerKaori Hagihara <khagihara@users.noreply.github.com>
Fri, 16 Sep 2011 14:17:45 +0000 (14:17 +0000)
applications/jpip/opj_client/opj_viewer/dist/opj_viewer-20110825.jar [deleted file]
applications/jpip/opj_client/opj_viewer/dist/opj_viewer-20110916.jar [new file with mode: 0644]
applications/jpip/opj_client/opj_viewer/dist/opj_viewer.jar
applications/jpip/opj_client/opj_viewer/src/ImageManager.java
applications/jpip/opj_client/opj_viewer/src/ImageViewer.java
applications/jpip/opj_client/opj_viewer/src/ImageWindow.java
applications/jpip/opj_client/opj_viewer/src/ImgdecClient.java
applications/jpip/opj_client/opj_viewer/src/JPIPHttpClient.java

diff --git a/applications/jpip/opj_client/opj_viewer/dist/opj_viewer-20110825.jar b/applications/jpip/opj_client/opj_viewer/dist/opj_viewer-20110825.jar
deleted file mode 100644 (file)
index 67b68b6..0000000
Binary files a/applications/jpip/opj_client/opj_viewer/dist/opj_viewer-20110825.jar and /dev/null differ
diff --git a/applications/jpip/opj_client/opj_viewer/dist/opj_viewer-20110916.jar b/applications/jpip/opj_client/opj_viewer/dist/opj_viewer-20110916.jar
new file mode 100644 (file)
index 0000000..a492a2c
Binary files /dev/null and b/applications/jpip/opj_client/opj_viewer/dist/opj_viewer-20110916.jar differ
index ce826b27f1d1f1d0c5dff55dab9f1dda8483de52..1553f3e0e6805fe1a10c4852d41b24a8c2ae1b6d 120000 (symlink)
@@ -1 +1 @@
-opj_viewer-20110825.jar
\ No newline at end of file
+opj_viewer-20110916.jar
\ No newline at end of file
index 62166f8a106790c2c0fed5836362eca979eb2185..f9e124419e8b62037191fe5d4f2e642447c849dc 100644 (file)
@@ -43,22 +43,25 @@ public class ImageManager extends JPIPHttpClient
     public int getOrigWidth(){ return pnmimage.width;}
     public int getOrigHeight(){ return pnmimage.height;}
     
-    public Image getImage( String j2kfilename, int reqfw, int reqfh)
+    public Image getImage( String j2kfilename, int reqfw, int reqfh, boolean reqcnew)
     {
        System.err.println();
        
-       String refcid = ImgdecClient.query_cid( j2kfilename);
+       String refcid = null;
        byte[] jpipstream;
        
+       if( reqcnew)
+           refcid = ImgdecClient.query_cid( j2kfilename);
+           
        if( refcid == null){
            String reftid = ImgdecClient.query_tid( j2kfilename);
            if( reftid == null)
-               jpipstream = super.requestViewWindow( j2kfilename, reqfw, reqfh, true);
+               jpipstream = super.requestViewWindow( j2kfilename, reqfw, reqfh, reqcnew);
            else
-               jpipstream = super.requestViewWindow( j2kfilename, reftid, reqfw, reqfh, true);
+               jpipstream = super.requestViewWindow( j2kfilename, reftid, reqfw, reqfh, reqcnew);
        }
        else
-           jpipstream = super.requestViewWindow( reqfw, reqfh, refcid, true);
+           jpipstream = super.requestViewWindow( reqfw, reqfh, refcid, reqcnew);
        
        System.err.println( "decoding to PNM image");
        pnmimage = ImgdecClient.decode_jpipstream( jpipstream, j2kfilename, tid, cid, fw, fh);
@@ -70,11 +73,11 @@ public class ImageManager extends JPIPHttpClient
     public Image getImage( int reqfw, int reqfh, int reqrx, int reqry, int reqrw, int reqrh)
     {
        System.err.println();
-
+       
        byte[] jpipstream = super.requestViewWindow( reqfw, reqfh, reqrx, reqry, reqrw, reqrh);
 
        System.err.println( "decoding to PNM image");
-       pnmimage = ImgdecClient.decode_jpipstream( jpipstream, cid, fw, fh);
+       pnmimage = ImgdecClient.decode_jpipstream( jpipstream, tid, cid, fw, fh);
        System.err.println( "     done");
        
        return pnmimage.createROIImage( rx, ry, rw, rh);
@@ -96,7 +99,9 @@ public class ImageManager extends JPIPHttpClient
     }
     public void closeChannel()
     {
-       ImgdecClient.destroy_cid( cid);
-       super.closeChannel();
+       if( cid != null){
+           ImgdecClient.destroy_cid( cid);
+           super.closeChannel();
+       }
     }
 }
\ No newline at end of file
index fe6f7eb4876ddd057f063cf1657c03e2273d3d55..8e0abe4a27382b0020dc39ad3cc7f568c478e7e7 100644 (file)
@@ -55,7 +55,7 @@ public class ImageViewer extends JPanel
     private Rectangle roirect[] = null;
     private String roiname[] = null;
       
-    public ImageViewer( String j2kfilename, ImageManager manager)
+    public ImageViewer( String j2kfilename, ImageManager manager, boolean session)
     {
        String str;
 
@@ -70,7 +70,7 @@ public class ImageViewer extends JPanel
        myRL = new ResizeListener(this);
 
        imgmanager = manager;
-       img = imgmanager.getImage( j2kfilename, vw, vh);
+       img = imgmanager.getImage( j2kfilename, vw, vh, session);
 
        addMouseListener(myMML);
        addMouseMotionListener(myMML);
index f6fc98ee75ddc4b0e508f3d9878f08e2c5c85cfa..5ffe9a5e65687d7e2f843448a9c0814bb4513fa6 100644 (file)
@@ -38,13 +38,13 @@ public class ImageWindow extends JFrame
     //    private OptionPanel optpanel;
     private ImageManager imgmanager;
     
-    public ImageWindow( String uri, String j2kfilename)
+    public ImageWindow( String uri, String j2kfilename, boolean session)
     {
        super( j2kfilename);
 
        imgmanager = new ImageManager( uri);
     
-       imgviewer = new ImageViewer( j2kfilename, imgmanager);
+       imgviewer = new ImageViewer( j2kfilename, imgmanager, session);
        imgviewer.setOpaque(true); //content panes must be opaque
     
        //      optpanel = new OptionPanel( imgmanager, imgviewer);
@@ -71,16 +71,21 @@ public class ImageWindow extends JFrame
     public static void main(String s[])
     {
        String j2kfilename, uri;
+       boolean session;
 
        if(s.length > 0){
            uri = s[0];
            j2kfilename = s[1];
+           if( s.length > 2)
+               session = !s[2].equalsIgnoreCase( "stateless");
+           else
+               session = true;
        }
        else{
-           System.out.println("Usage: java -jar opj_viewer.jar HTTP_server_URI imagefile.jp2");
+           System.out.println("Usage: java -jar opj_viewer.jar HTTP_server_URI imagefile.jp2 [stateless/session]");
            return;
        }
-       ImageWindow frame = new ImageWindow( uri, j2kfilename);
+       ImageWindow frame = new ImageWindow( uri, j2kfilename, session);
     
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
index 85fba6127b9955f797d925a844376f75bbd3bda7..6f1b3c303b6ea87e5b902cbec2f76036d96a4332 100644 (file)
@@ -33,17 +33,17 @@ import java.net.*;
 
 public class ImgdecClient{
 
-    public static PnmImage decode_jpipstream( byte[] jpipstream, String cid, int fw, int fh)
+    public static PnmImage decode_jpipstream( byte[] jpipstream, String tid, String cid, int fw, int fh)
     {
        if( jpipstream != null)
            send_JPIPstream( jpipstream);
-       return get_PNMstream( cid, fw, fh);
+       return get_PNMstream( cid, tid, fw, fh);
     }
 
     public static PnmImage decode_jpipstream( byte[] jpipstream, String j2kfilename, String tid, String cid, int fw, int fh)
     {
        send_JPIPstream( jpipstream, j2kfilename, tid, cid);
-       return get_PNMstream( cid, fw, fh);
+       return get_PNMstream( cid, tid, fw, fh);
     }
     
     public static void send_JPIPstream( byte[] jpipstream)
@@ -91,10 +91,13 @@ public class ImgdecClient{
                os.writeBytes( "0\n");
            else
                os.writeBytes( tid + "\n");
-           os.writeBytes( cid + "\n");
+           if( cid == null)
+               os.writeBytes( "0\n");
+           else
+               os.writeBytes( cid + "\n");
            os.writeBytes( length + "\n");
            os.write( jpipstream, 0, length);
-      
+           
            byte signal = is.readByte();
       
            if( signal == 0)
@@ -106,7 +109,7 @@ public class ImgdecClient{
        }
     }
 
-    public static PnmImage get_PNMstream( String cid, int fw, int fh)
+    public static PnmImage get_PNMstream( String cid, String tid, int fw, int fh)
     {
        PnmImage pnmstream = new PnmImage();
        try {
@@ -116,7 +119,13 @@ public class ImgdecClient{
            byte []header = new byte[7];
            
            os.writeBytes("PNM request\n");
-           os.writeBytes( cid + "\n");
+           if( cid != null)
+               os.writeBytes( cid + "\n");
+           else
+               if( tid != null)
+                   os.writeBytes( tid + "\n");
+               else
+                   os.writeBytes( "0\n");
            os.writeBytes( fw + "\n");
            os.writeBytes( fh + "\n");
 
index cfd3db4cc897bbf6c5e123750ec874e7d441d015..93d4ad5cdf4bbaf6d0844215b1749eab9515b967 100644 (file)
@@ -72,7 +72,11 @@ public class JPIPHttpClient
        if( cid != null)
            return requestViewWindow( reqfw, reqfh, reqrx, reqry, reqrw, reqrh, cid);
        else
-           return null;
+           //          return null;
+           if( tid != null)
+               return requestViewWindow( null, tid, reqfw, reqfh, reqrx, reqry, reqrw, reqrh, null, false);
+           else
+               return null;
     }
 
     public byte[] requestViewWindow( int reqfw, int reqfh, String reqcid)