summaryrefslogtreecommitdiffstats
path: root/java/rasj/clientcommhttp
diff options
context:
space:
mode:
Diffstat (limited to 'java/rasj/clientcommhttp')
-rw-r--r--java/rasj/clientcommhttp/Makefile62
-rw-r--r--java/rasj/clientcommhttp/Makefile.dep0
-rw-r--r--java/rasj/clientcommhttp/RasCommDefs.classbin753 -> 0 bytes
-rw-r--r--java/rasj/clientcommhttp/RasCommDefs.java54
-rw-r--r--java/rasj/clientcommhttp/RasHttpRequest.classbin12597 -> 0 bytes
-rw-r--r--java/rasj/clientcommhttp/RasHttpRequest.java805
-rw-r--r--java/rasj/clientcommhttp/RasUtils.classbin1586 -> 0 bytes
-rw-r--r--java/rasj/clientcommhttp/RasUtils.java110
8 files changed, 0 insertions, 1031 deletions
diff --git a/java/rasj/clientcommhttp/Makefile b/java/rasj/clientcommhttp/Makefile
deleted file mode 100644
index 7c9dc43..0000000
--- a/java/rasj/clientcommhttp/Makefile
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*-Makefile-*- (for Emacs)
-#
-# This file is part of rasdaman community.
-#
-# Rasdaman community 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 3 of the License, or
-# (at your option) any later version.
-#
-# Rasdaman community 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.
-#
-# You should have received a copy of the GNU General Public License
-# along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
-#
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
-# rasdaman GmbH.
-#
-# For more information please see <http://www.rasdaman.org>
-# or contact Peter Baumann via <baumann@rasdaman.com>. # Top Level makefile. This points to the various modules that have to be build
-# and/or deployed
-#
-# MAKEFILE FOR:
-# package rasj/clientcommhttp
-#
-# COMMENTS:
-#
-##################################################################
-######################### Definitions ############################
-
-# standard include with general options
-include $(RMANBASE)/Makefile.inc
-
-# directory where HTML documentation is created
-DOCDIR := $(DOCBASE)/rasdaman/java/rasj/clientcommhttp
-
-SRCS = RasCommDefs.java RasHttpRequest.java RasUtils.java
-OBJS = ${SRCS:%.java=%.class}
-MISCCLEAN = *.class
-
-########################### Targets ##############################
-
-# compile everything
-.PHONY : all
-all: $(OBJS)
-
-# HTML docu
-docj:
- -rm -rf $(DOCDIR)/rasj/clientcommhttp
- $(JAVADOC) -author -d $(DOCDIR) rasj/clientcommhttp
-
-# delete all object files
-clean:
- -rm -f $(MISCCLEAN)
-
-############################ Dependencies #######################
-# general rules
-# FIXME: should not be used here (only for relational adapter modules in rel*/), but is needed for Java targets
-include $(RMANBASE)/Makefile.rel
-
diff --git a/java/rasj/clientcommhttp/Makefile.dep b/java/rasj/clientcommhttp/Makefile.dep
deleted file mode 100644
index e69de29..0000000
--- a/java/rasj/clientcommhttp/Makefile.dep
+++ /dev/null
diff --git a/java/rasj/clientcommhttp/RasCommDefs.class b/java/rasj/clientcommhttp/RasCommDefs.class
deleted file mode 100644
index 19067da..0000000
--- a/java/rasj/clientcommhttp/RasCommDefs.class
+++ /dev/null
Binary files differ
diff --git a/java/rasj/clientcommhttp/RasCommDefs.java b/java/rasj/clientcommhttp/RasCommDefs.java
deleted file mode 100644
index f08fae3..0000000
--- a/java/rasj/clientcommhttp/RasCommDefs.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-* This file is part of rasdaman community.
-*
-* Rasdaman community 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 3 of the License, or
-* (at your option) any later version.
-*
-* Rasdaman community 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.
-*
-* You should have received a copy of the GNU General Public License
-* along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
-*
-* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
-rasdaman GmbH.
-*
-* For more information please see <http://www.rasdaman.org>
-* or contact Peter Baumann via <baumann@rasdaman.com>.
-*/
-/** ***********************************************************
- * <pre>
- *
- * PURPOSE:
- *
- *
- *
- * COMMENTS:
- *
- * </pre>
- *********************************************************** */
-
-package rasj.clientcommhttp;
-
-public interface RasCommDefs
-{
- static final String rcsid = "@(#)Package rasj.clientcommhttp, class RasCommDefs: $Header: /home/rasdev/CVS-repository/rasdaman/java/rasj/clientcommhttp/RasCommDefs.java,v 1.5 2003/12/10 21:04:26 rasdev Exp $";
-
- final public byte RASCLIENT = 1;
- final public byte BROWSER = 2;
-
- final public byte RESPONSE_ERROR = 0;
- final public byte RESPONSE_MDDS = 1;
- final public byte RESPONSE_SKALARS = 2;
- final public byte RESPONSE_INT = 3;
- final public byte RESPONSE_OID = 4;
- final static byte RESPONSE_OK_NEGATIVE = 98;
- final public byte RESPONSE_OK = 99;
-
- final public byte BIG_ENDIAN = 0;
- final public byte LITTLE_ENDIAN = 1;
-}
diff --git a/java/rasj/clientcommhttp/RasHttpRequest.class b/java/rasj/clientcommhttp/RasHttpRequest.class
deleted file mode 100644
index 43ecc52..0000000
--- a/java/rasj/clientcommhttp/RasHttpRequest.class
+++ /dev/null
Binary files differ
diff --git a/java/rasj/clientcommhttp/RasHttpRequest.java b/java/rasj/clientcommhttp/RasHttpRequest.java
deleted file mode 100644
index f80a2ca..0000000
--- a/java/rasj/clientcommhttp/RasHttpRequest.java
+++ /dev/null
@@ -1,805 +0,0 @@
-/*
-* This file is part of rasdaman community.
-*
-* Rasdaman community 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 3 of the License, or
-* (at your option) any later version.
-*
-* Rasdaman community 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.
-*
-* You should have received a copy of the GNU General Public License
-* along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
-*
-* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
-rasdaman GmbH.
-*
-* For more information please see <http://www.rasdaman.org>
-* or contact Peter Baumann via <baumann@rasdaman.com>.
-*/
-/*************************************************************
- * <pre>
- *
- * PURPOSE:
- *
- *
- * COMMENTS:
- * - return type complex not yet supported.
- * </pre>
- *********************************************************** */
-
-package rasj.clientcommhttp;
-
-import rasj.*;
-import org.odmg.*;
-import rasj.odmg.*;
-import rasj.global.*;
-
-import java.io.*;
-import java.net.*;
-import java.lang.*;
-import java.util.*;
-
-/**
- * This class handles a HTTP-request to the RasDaMan server.
- * The specified RasDaMan server is contacted, the specified command is sent to
- * the server, and the result of the query is retrieved and stored in a byte array.
- * The specification of the communication protocol is given below.
- * <P>
- *
- * @version $Revision: 1.35 $
- *
- * </UL><P>
- * <B>Request structure</B><P><UL>
- * The rasj HTTP request to the rasdaman server uses the HTTP POST-Format with the following
- * parameters:
- * <P>
- * <TABLE BORDER=1 WIDTH=100%>
- * <TR><TH>Parameter:</TH><TH>Description:</TH><TH>Required for</TH></TR>
- * <TR><TD>Command</TD>
- * <TD>Integer value specifying the desired action (e.g. OpenDB, BT, CT, CloseDB ...)</TD>
- * <TD>all requests</TD></TR>
- * <TR><TD>Database</TD>
- * <TD>String value specifying the database</TD>
- * <TD>OpenDB, CloseDB</TD></TR>
- * <TR><TD>ClientType</TD>
- * <TD>Integer value defining the type of the client (at the moment always RasClient)</TD>
- * <TD>all requests</TD></TR>
- * <TR><TD>ClientID</TD>
- * <TD>Integer value specifying the ClientID (currently set to 1 for every client)</TD>
- * <TD>all requests</TD></TR>
- * <TR><TD>QueryString</TD>
- * <TD>String value containing the RasQL query</TD>
- * <TD>executeQuery</TD></TR>
- * <TR><TD>Endianess</TD>
- * <TD>Integer value containing the Client Endianess</TD>
- * <TD>only insert queries</TD></TR>
- * <TR><TD>NumberOfQueryParameters</TD>
- * <TD>Integer value specifying the number of query parameters</TD>
- * <TD>only insert queries</TD></TR>
- * <TR><TD>QueryParameters</TD>
- * <TD>Byte Array containing the query parameters (MDDs) using the following format:<BR>
- * <TABLE BORDER=1>
- * <TR><TH>Integer</TH><TH>String</TH><TH>String</TH><TH>Integer</TH><TH>String</TH><TH>String</TH>
- * <TH>String</TH><TH>Long</TH><TH>Byte[]</TH>
- * </TR>
- * <TR><TD>objectType</TD><TD>objectTypeName</TD><TD>typeStructure</TD><TD>typeLength</TD>
- * <TD>domain</TD><TD>storageLayout</TD><TD>OID</TD><TD>dataSize</TD><TD>binary data</TD></TR>
- * </TABLE>
- *</TD>
- * <TD>only insert queries</TD></TR>
- * </TABLE>
- * </P>
- * </UL><P>
- *
- * <B>Result formats / internal representation:</B><P><UL>
- * The result of a HTTP request has one of the following forms:<P>
- * MDD Collections:<BR>
- * <TABLE BORDER=1><TR><TH ROWSPAN=2>Byte</TH><TH ROWSPAN=2>Byte</TH>
- * <TH ROWSPAN=2>String</TH><TH ROWSPAN=2>Long(4Bytes)</TH>
- * <TH COLSPAN=5>resultElement 1</TH><TH ROWSPAN=3> ... </TH></TR>
- * <TR><TD>String</TD><TD>String</TD><TD>String</TD><TD>Long(4Bytes)</TD><TD>Byte[]</TD></TR>
- * <TR><TD>Result type<P>1=MDDCollection</TD>
- * <TD>Endianess</TD>
- * <TD>Collection type</TD>
- * <TD>Number of results</TD>
- * <TD>BaseType description</TD>
- * <TD>Spatial domain</TD>
- * <TD>OID</TD>
- * <TD>Size of the Binary Data Block</TD>
- * <TD>Binary Data Block</TD></TR>
- * </TABLE><P>
- *
- * Skalar Collections:<BR>
- * <TABLE BORDER=1><TR><TH ROWSPAN=2>Byte</TH><TH ROWSPAN=2>Byte</TH>
- * <TH ROWSPAN=2>String</TH><TH ROWSPAN=2>Long(4Bytes)</TH>
- * <TH COLSPAN=4>resultElement 1</TH><TH ROWSPAN=3> ... </TH></TR>
- * <TR><TD>String</TD><TD>Long(4Bytes)</TD><TD>Byte[]</TD></TR>
- * <TR><TD>Result type<P>2=SkalarCollection</TD>
- * <TD>Endianess</TD>
- * <TD>Collection type</TD>
- * <TD>Number of results</TD>
- * <TD>ElementType description</TD>
- * <TD>Size of the Binary Data Block</TD>
- * <TD>Binary Data Block</TD></TR>
- * </TABLE><P>
- *
- * Errors:<BR>
- * <TABLE BORDER=1><TR><TH>Byte</TH><TH>Byte</TH>
- * <TH>Long(4Bytes)</TH><TH>Long(4Bytes)</TH><TH>Long(4Bytes)</TH>
- * <TH>String</TH></TR>
- * <TR><TD>Result type<P>0=Error</TD>
- * <TD>Endianess</TD>
- * <TD>Error number</TD>
- * <TD>Line number</TD>
- * <TD>Column number</TD>
- * <TD>Token</TD>
- * </TABLE><P>
- *
- * Single Integer Value:<BR>
- * <TABLE BORDER=1><TR><TH>Byte</TH><TH>Integer</TH></TR>
- * <TR><TD>Result type<P>3=Integer</TD><TD>Value</TD></TR>
- * </TABLE><P>
- *
- * OID:<BR>
- * <TABLE BORDER=1><TR><TH>Byte</TH><TH>String</TH><TH>String</TH><TH>Double</TH></TR>
- * <TR><TD>Result type<P>4=OID</TD><TD>system</TD><TD>basename</TD><TD>localOID</TD></TR>
- * </TABLE><P>
- *
- * Acknowledgement:<BR>
- * <TABLE BORDER=1><TR><TH>Byte</TH></TR>
- * <TR><TD>Result type<P>99=OK</TD></TR>
- * </TABLE><P>
- *
- * </UL>
- *
- */
-
-public class RasHttpRequest implements RasCommDefs, RasGlobalDefs
-{
-
- static final String rcsid = "@(#)Package rasj.clientcommhttp, class RasRequest: $Header: /home/rasdev/CVS-repository/rasdaman/java/rasj/clientcommhttp/RasHttpRequest.java,v 1.35 2003/12/19 15:36:43 rasdev Exp $";
-
-/**
- * The type of this client */
- private String client = "RASCLIENT";
-
-/**
- * The result type ( MDD Collection, Skalar Collection, Error, Integer ). This field is set
- * automatically when a query has been executed, so there's no setResultType method.
- */
- private byte resultType = 0;
-
-/**
- * The result of the query
-**/
- private Object result = null;
-
-/**
- * This method sends a query to the RasDaMan Server and retrieves the results.
- *
- * @param con server connection
- * @param parameters the parameters for the request as name/value pairs (for example "clientID=4354351&queryString=select img from test")
- */
- public void execute( String serverURL, String parameters )
- throws RasQueryExecutionFailedException, RasConnectionFailedException
- {
- Debug.enterVerbose( "RasHttpRequest.execute: start. serverURL=" + serverURL + ", parameters=" + parameters );
-
- BenchmarkTimer httpTimer = new BenchmarkTimer("httpRequest");
- BenchmarkTimer rcvTimer = new BenchmarkTimer("receive");
-
- try
- {
- URL url = new URL( serverURL );
-
- Debug.talkVerbose( "RasHttpRequest.execute: sending to " + url + " POST request=" + parameters );
-
- httpTimer.startTimer();
-
- BenchmarkTimer sendTimer = new BenchmarkTimer("send");
- sendTimer.startTimer();
-
- // Send the query
- HttpURLConnection con = (HttpURLConnection) url.openConnection();
- con.setRequestProperty("Content-type","application/octet-stream");
- con.setRequestProperty("User-Agent","RasDaMan Java Client");
- con.setRequestProperty("Version","1.0");
- con.setRequestMethod("POST");
- con.setDoInput(true);
- con.setDoOutput(true);
- con.setUseCaches(false);
-
- OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream(),"8859_1");
- out.write(parameters,0,parameters.length());
- out.flush();
- out.close();
-
- sendTimer.stopTimer();
- sendTimer.print();
-
- rcvTimer.startTimer();
-
- // Read response
- BenchmarkTimer getInputTimer = new BenchmarkTimer("getInputStream");
- getInputTimer.startTimer();
- DataInputStream in = new DataInputStream(con.getInputStream());
- // int BuffSize = con.getContentLength(); // not used -- PB 2003-jun-14
- // Debug.talkVerbose("RasHttpRequest.execute: buffSize=" + BuffSize);
- getInputTimer.stopTimer();
- getInputTimer.print();
-
-
- /* variables for later use */
- byte[] b1 = new byte[1];
- byte[] b4 = new byte[4];
- byte endianess = 0;
- String collType = null;
- int numberOfResults = 0;
- int dataSize = 0;
- byte[] binData = null;
- int readBytes = 0;
- int readBytesTmp = 0;
- DBag resultBag;
- RasGMArray res = null;
-
- in.read(b1);
-
- resultType = b1[0];
- Debug.talkVerbose("RasHttpRequest.execute: resultType=" + resultType );
- switch( resultType )
- {
- case RESPONSE_OK:
- case RESPONSE_OK_NEGATIVE:
- //Nothing todo
- break;
-
- // +++++++++++++++++++++++++++++++++++++++++++++++++
- case RESPONSE_MDDS:
- Debug.talkVerbose("RasHttpRequest.execute: result type is MDD." );
- // read Endianess
- while(in.read(b1) == 0)
- ;
- endianess = b1[0];
-
- // read Collection Type
- collType = RasUtils.readString(in);
- Debug.talkVerbose("RasHttpRequest.execute: colltype=" + collType);
-
- // read NumberOfResults
- while(in.available() < 4)
- ;
- in.read(b4);
- numberOfResults = RasUtils.ubytesToInt(b4,endianess);
- Debug.talkVerbose("RasHttpRequest.execute: number of results: " + numberOfResults);
-
- // Initialize return-set and parameters
- resultBag = new RasBag();
- String mddBaseType = null;
- String domain = null;
- String oid = "";
- RasOID roid = null;
-
- // do this for each result
- for(int x = 0; x < numberOfResults; x++)
- {
- Debug.talkVerbose("RasHttpRequest.execute: handling result #" + (x+1) );
- //read mddBaseType
- mddBaseType = RasUtils.readString(in);
-
- // read spatialDomain
- domain = RasUtils.readString(in);
-
- // read OID
- oid = RasUtils.readString(in);
- //System.err.println("OID is " + oid);
- roid = new RasOID(oid);
-
- // read size of binData
- while(in.available() < 4)
- ;
- in.read(b4);
-
- dataSize = RasUtils.ubytesToInt(b4,endianess);
-
- Debug.talkVerbose("RasHttpRequest.execute: mddBaseType is " + mddBaseType + ", spatialDomain=" + domain + ", size of BinData=" + dataSize );
-
- // read binData
- binData = new byte[dataSize];
- readBytes = 0;
- readBytesTmp = 0;
-
- while( (readBytesTmp != -1) && (readBytes < dataSize) )
- {
- readBytesTmp = in.read(binData,readBytes,dataSize-readBytes);
- readBytes += readBytesTmp;
- }
-
- Debug.talkVerbose("RasHttpRequest.execute: read " + readBytes + " bytes.");
-
- RasType rType = RasType.getAnyType(mddBaseType);
- //System.out.println(rType);
- RasBaseType rb = null;
-
- if(rType.getClass().getName().equals("rasj.RasMArrayType"))
- {
- RasMArrayType tmp = (RasMArrayType)rType;
- rb = tmp.getBaseType();
- }
- else
- {
- Debug.talkCritical("RasHttpRequest.execute: exception: element of MDD Collection is no MArray" );
- throw new RasClientInternalException("RasHttpRequest","execute()","element of MDD Collection is no MArray");
- }
-
- if(rb.isBaseType())
- {
- if(rb.isStructType())
- {
- // It is a structType
- //System.err.println("It is a structType");
- RasStructureType sType = (RasStructureType)rb;
- //System.out.println(sType);
- res = new RasGMArray(new RasMInterval(domain), 0);
- res.setTypeLength(rb.getSize());
- res.setArraySize(dataSize);
- res.setArray(binData);
- //insert into result set
- resultBag.add(res);
- break;
-
- } else
- {
- // It is a primitiveType
- RasPrimitiveType pType = (RasPrimitiveType)rb;
-
- //System.err.println("It's a primitive type: " + pType);
- switch(pType.getTypeID())
- {
- case RAS_BOOLEAN:
- case RAS_BYTE:
- case RAS_CHAR:
- //System.err.println("It's a byte array!");
- res = new RasMArrayByte(new RasMInterval(domain));
- break;
- case RAS_SHORT:
- //System.err.println("It's a short array!");
- res = new RasMArrayShort(new RasMInterval(domain));
- break;
-
- case RAS_USHORT:
- //System.err.println("It's a ushort array!");
- byte[] tmData = new byte[dataSize*2];
- for(int i=0;i<dataSize*2;)
- {
- tmData[i] = 0;
- tmData[i+1] = 0;
- tmData[i+2] = binData[i/2];
- tmData[i+3] = binData[i/2+1];
- i = i+SIZE_OF_INTEGER;
- }
- binData = tmData;
- res = new RasMArrayInteger(new RasMInterval(domain));
- break;
-
- case RAS_INT:
- case RAS_LONG:
- //System.err.println("It's a integer array!");
- res = new RasMArrayInteger(new RasMInterval(domain));
- break;
- case RAS_ULONG:
- //System.err.println("It's a ulong array!");
- byte[] tmpData = new byte[dataSize*2];
- for(int i=0;i<dataSize*2;)
- {
- tmpData[i] = 0;
- tmpData[i+1] = 0;
- tmpData[i+2] = 0;
- tmpData[i+3] = 0;
- tmpData[i+4] = binData[i/2];
- tmpData[i+5] = binData[i/2+1];
- tmpData[i+6] = binData[i/2+2];
- tmpData[i+7] = binData[i/2+3];
- i = i+SIZE_OF_LONG;
- }
- binData = tmpData;
- res = new RasMArrayLong(new RasMInterval(domain));
- break;
- case RAS_FLOAT:
- //System.err.println("It's a float array!");
- res = new RasMArrayFloat(new RasMInterval(domain));
- break;
- case RAS_DOUBLE:
- //System.err.println("It's a double array!");
- res = new RasMArrayDouble(new RasMInterval(domain));
- break;
- default:
- //System.err.println("It's a GMArray!");
- res = new RasGMArray(new RasMInterval(domain), pType.getSize());
- //throw new RasTypeNotSupportedException(pType.getName());
- }
- // set array data
- res.setArray(binData);
- // set oid
- res.setOID(roid);
- //insert into result set
- resultBag.add(res);
- }
-
- }
- else throw new RasClientInternalException("RasHttpRequest","execute()","Type of MDD is no Base Type");
- }
-
- result = resultBag;
-
- // close stream
- in.close();
-
- break;
-
- // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- case RESPONSE_SKALARS:
- //System.err.println("Skalar = 2");
- // read Endianess
- while(in.read(b1) == 0);
- endianess = b1[0];
-
- // read Collection Type
- collType = RasUtils.readString(in);
- RasType rt = new RasType();
- try
- {
- rt = rt.getAnyType(collType);
- //System.err.println("Colltype is " + rt);
- }
- catch(Exception e)
- {
- throw new RasTypeNotSupportedException(rt + " as RasCollectionType");
- }
- if(rt.getTypeID()!=RasGlobalDefs.RAS_COLLECTION)
- throw new RasTypeNotSupportedException(rt + " as RasCollectionType");
-
- // read NumberOfResults
- while(in.available() < 4);
- in.read(b4);
- numberOfResults = RasUtils.ubytesToInt(b4,endianess);
- //System.err.println("Number of results: " + numberOfResults);
-
- // Initailize return-list
- resultBag = new RasBag();
-
- // do this for each result
- for(int x = 0; x < numberOfResults; x++)
- {
- // read elementType
- String elementType = RasUtils.readString(in);
- RasType et = new RasType();
- et = ((RasCollectionType)rt).getElementType();
- //System.err.println("ElementType is " + et);
-
- // read size of binData
- while(in.available() < 4);
- in.read(b4);
- dataSize = RasUtils.ubytesToInt(b4,endianess);
- //System.err.print("Size of BinData: ");
- //System.err.println(dataSize);
-
- // read binData
- binData = new byte[dataSize];
- readBytes = 0;
- readBytesTmp = 0;
- while( (readBytesTmp != -1) && (readBytes < dataSize) )
- {
- readBytesTmp = in.read(binData,readBytes,dataSize-readBytes);
- readBytes += readBytesTmp;
- /*
- System.err.println("Read " + readBytesTmp +" Bytes ("
- + readBytes + " Bytes overall)");
- */
- }
- //System.err.println("Füge ein ..." + new String(binData));
-
- ByteArrayInputStream bis = new ByteArrayInputStream(binData);
- DataInputStream dis = new DataInputStream(bis);
- // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- switch(et.getTypeID())
- {
- case RasGlobalDefs.RAS_MINTERVAL:
- resultBag.add(new RasMInterval(new String(binData)));
- break;
- case RasGlobalDefs.RAS_SINTERVAL:
- resultBag.add(new RasSInterval(new String(binData)));
- break;
- case RasGlobalDefs.RAS_POINT:
- resultBag.add(new RasPoint(new String(binData)));
- break;
- case RasGlobalDefs.RAS_OID:
- resultBag.add(new RasOID(new String(binData)));
- break;
- case RAS_BOOLEAN:
- case RAS_BYTE:
- case RAS_CHAR:
- byte b = binData[0];
- resultBag.add(new Byte(b));
- break;
- case RAS_DOUBLE:
- double d = dis.readDouble();
- resultBag.add(new Double(d));
- break;
- case RAS_FLOAT:
- float f = dis.readFloat();
- resultBag.add(new Float(f));
- break;
- case RAS_ULONG:
- byte[] bu = new byte[8];
- bu[0] = 0;
- bu[1] = 0;
- bu[2] = 0;
- bu[3] = 0;
- bu[4] = dis.readByte();
- bu[5] = dis.readByte();
- bu[6] = dis.readByte();
- bu[7] = dis.readByte();
- ByteArrayInputStream bis2 = new ByteArrayInputStream(bu);
- DataInputStream dis2 = new DataInputStream(bis2);
- long ul = dis2.readLong();
- resultBag.add(new Long(ul));
- break;
- case RAS_LONG:
- case RAS_INT:
- int i = dis.readInt();
- resultBag.add(new Integer(i));
- break;
- case RAS_USHORT:
- int j = dis.readUnsignedShort();
- resultBag.add(new Integer(j));
- break;
- case RAS_SHORT:
- short s = dis.readShort();
- resultBag.add(new Short(s));
- break;
- default:
- throw new RasTypeNotSupportedException(et + " as ElementType ");
- }
- }
- result = resultBag;
-
- // close stream
- in.close();
- break;
-
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- case RESPONSE_ERROR:
- Debug.talkCritical("RasHttpRequest.execute: execution failed. Error = 0");
-
- // read Endianess
- while(in.read(b1) == 0)
- ;
- endianess = b1[0];
-
- // read Error Number
- while(in.available() < 4)
- ;
- in.read(b4);
- int errNo = RasUtils.ubytesToInt(b4,endianess);
-
- // read Line Number
- while(in.available() < 4)
- ;
- in.read(b4);
- int lineNo = RasUtils.ubytesToInt(b4,endianess);
-
- // read Column Number
- while(in.available() < 4)
- ;
- in.read(b4);
- int colNo = RasUtils.ubytesToInt(b4,endianess);
-
- // read token
- String token = RasUtils.readString(in);
-
- Debug.talkCritical("RasHttpRequest.execute: Errno=" + errNo + ", lineNo=" + lineNo + ", colNo=" + colNo + ", Token=" + token);
-
- throw new RasQueryExecutionFailedException(errNo,lineNo,colNo,token);
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- case RESPONSE_INT:
- // read Integer Value
- //System.err.println("Now reading integer value...");
- while(in.available() < 4);
- in.read(b4);
- result = new Integer(RasUtils.ubytesToInt(b4,endianess));
- //System.err.println("Int Value is : " + result.getInt());
- break;
-
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- case RESPONSE_OID:
- // read Values
- String sys = RasUtils.readString(in);
- String base = RasUtils.readString(in);
- double d = in.readDouble();
- //System.out.println(sys+base+"localOID als double = " + d);
- resultBag = new RasBag();
- resultBag.add(new RasOID(sys, base, d));
- result = resultBag;
- // close stream
- in.close();
- break;
- default:
- Debug.talkCritical( "RasHttpRequest.execute: illegal response type: " + resultType );
- break;
-
- }
-
- con.disconnect(); // close connection to server -- PB 2003-jun-15
- }
- catch( MalformedURLException e )
- {
- Debug.leaveCritical( "RasHttpRequest.execute: leave. malformed URL: " + e.getMessage() );
- throw new RasConnectionFailedException(MANAGER_CONN_FAILED, serverURL );
- }
- catch( IOException e )
- {
- Debug.leaveCritical( "RasHttpRequest.execute: leave. IO exception: " + e.getMessage() );
- throw new RasClientInternalException("RasHttpRequest","execute()",e.getMessage());
- }
- catch( RasResultIsNoIntervalException e )
- {
- Debug.leaveCritical( "RasHttpRequest.execute: leave. result no interval: " + e.getMessage() );
- throw new RasClientInternalException("RasHttpRequest","execute()",e.getMessage());
- }
-
- rcvTimer.stopTimer();
- rcvTimer.print();
-
- httpTimer.stopTimer();
- httpTimer.print();
-
- Debug.leaveVerbose( "RasHttpRequest.execute: leave. resultType=" + resultType );
- } // execute()
-
-
-/**
- * returns the result type (MDDColl, SkalarColl, Error, Integer)
- */
- public byte getResultType()
- {
- return resultType;
- }
-
-/**
- * returns the result of the query
- */
- public Object getResult()
- {
- return result;
- }
-
-/**
- * returns the result of the query as an Integer
- */
- public int getIntegerResult()
- {
- if (result != null)
- {
- Integer myInt = (Integer)result;
- return myInt.intValue();
- }
- else
- return 0;
- }
-
-/**
- * returns the result of the query as a DCollection
- */
- public DCollection getDCollection()
- {
- return (DCollection)result;
- }
-
-/**
- * returns the result of the query as a DBag
- */
- public DBag getDBag()
- {
- return (DBag)result;
- }
-
-/**
- * This method specifies the type of the client. The clientType determines
- * how the results are coded
- * and returned by the server. Default type and the only type supported right now
- * is "RASCLIENT". The results are sent back using the "application/octet-stream"
- * mime type and are coded as a byte stream as described in the class documentation.
- * <P>
- * Future versions will support other types like, for example, "BROWSER", where the
- * results will be coded as standard HTTP-responses of certain mime types (for example
- * "image/gif").
- *
- * @param clientType currently only "RASCLIENT" supported
- */
- public void setClientType ( String clientType )
- {
- client = clientType;
- }
-
-/**
- * main program for testing purposes
- */
-
-/* BEGIN experimental ***********************
- public static void main( String[] args )
- {
- String server = "localhost";
- String port = "7001";
- String base = "RASBASE";
- String user = "rasguest";
- String passwd = "rasguest";
- String query = "select r from RAS_COLLECTIONNAMES as r";
- int count = 1;
-
- System.out.println( "Query test started." );
-
- for (int i=args.length-1; i>=0; i--)
- {
- if (args[i].equals("--server"))
- server = args[i+1];
- if (args[i].equals("--port"))
- port = args[i+1];
- if (args[i].equals("--database"))
- base = args[i+1];
- if (args[i].equals("--user"))
- user = args[i+1];
- if (args[i].equals("--passwd"))
- passwd = args[i+1];
- if (args[i].equals("--query"))
- query = args[i+1];
- if (args[i].equals("--count"))
- count = Integer.parseInt(args[i+1]);
- }
-
- try
- {
- RasImplementation myApp = new RasImplementation("http://"+server+":"+port);
- myApp.setUserIdentification(user, passwd);
-
- System.out.println( "opening database..." );
- Database myDb = myApp.newDatabase();
- myDb.open( base, Database.OPEN_READ_ONLY );
-
- System.out.println( "starting transaction..." );
- Transaction myTa = myApp.newTransaction();
- myTa.begin();
-
- String parameters = "Command=8&ClientID=1&QueryString=" + query;
- String serverUrl = "http://" + server + ":" + 7102; // port;
-
- for (int i = 0; i < count; i++)
- {
- System.out.println( "sending query #" + i + "..." );
- execute( serverUrl, parameters );
- }
-
- System.out.println( "closing transaction..." );
- myTa.abort();
-
- System.out.println( "closing database..." );
- myDb.close();
- System.out.println( "all done." );
-
- }
- catch(Exception e)
- {
- System.err.println( e.getMessage() );
- }
-
- System.out.println( "Query test done." );
-
- } // main()
-END experimental ***********************/
-}
-
-
-
diff --git a/java/rasj/clientcommhttp/RasUtils.class b/java/rasj/clientcommhttp/RasUtils.class
deleted file mode 100644
index 33c59a3..0000000
--- a/java/rasj/clientcommhttp/RasUtils.class
+++ /dev/null
Binary files differ
diff --git a/java/rasj/clientcommhttp/RasUtils.java b/java/rasj/clientcommhttp/RasUtils.java
deleted file mode 100644
index 1ffa049..0000000
--- a/java/rasj/clientcommhttp/RasUtils.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-* This file is part of rasdaman community.
-*
-* Rasdaman community 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 3 of the License, or
-* (at your option) any later version.
-*
-* Rasdaman community 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.
-*
-* You should have received a copy of the GNU General Public License
-* along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
-*
-* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
-rasdaman GmbH.
-*
-* For more information please see <http://www.rasdaman.org>
-* or contact Peter Baumann via <baumann@rasdaman.com>.
-*/
-/** ***********************************************************
- * <pre>
- *
- * PURPOSE:
- *
- *
- *
- * COMMENTS:
- *
- * </pre>
- *********************************************************** */
-
-package rasj.clientcommhttp;
-
-import java.io.*;
-import java.net.*;
-import java.lang.*;
-
-/**
- *
- * This class provides some useful methods for reading binary data from a stream
- * or converting objects to a byte array for transmission.
- *
- */
-public final class RasUtils implements RasCommDefs
-{
- static final String rcsid = "@(#)Package rasj.clientcommhttp, class RasUtils: $Header: /home/rasdev/CVS-repository/rasdaman/java/rasj/clientcommhttp/RasUtils.java,v 1.5 2003/12/10 21:04:26 rasdev Exp $";
-
- public RasUtils()
- {
- }
-
- /**
- * This method is used for turning up to 4 unsigned bytes into signed integers.
- *
- * @param uBytes one to four Bytes which are interpreted as an unsigned Integer
- * @param endianess determines the order of the bytes: 0 = bigendian, 1 = little endian
- */
- public static int ubytesToInt( byte[] uBytes, byte endianess )
- {
- int tmpi;
- byte tmpb;
- int retval = 0;
-
- for( int i = 0; i < uBytes.length; i++ )
- {
- if( endianess == BIG_ENDIAN )
- tmpb = uBytes[uBytes.length-i-1];
- else
- tmpb = uBytes[i];
-
- tmpi = 0;
- /* Byte < 0 */
- if( (int)tmpb < 0 )
- tmpi = 256 + tmpb;
- else
- tmpi = tmpb;
-
- tmpi <<= (i*8);
- retval += tmpi;
- }
- return retval;
- }
-
- /**
- * Reads characters from a stream until a '\0' character is reached.
- *
- * @param in BufferedInputStream to be read from ( must have been initialized before! )
- */
- public static String readString( InputStream in )
- throws IOException
- {
- byte b = (byte) '\0';
- byte[] b1 = new byte[1];
- String retval = "";
-
- while(in.read(b1) == 0);
- while(b1[0] != b)
- {
- retval =retval + (char)b1[0];
- while(in.read(b1) == 0);
- }
- return retval;
- }
-
-
-
-}