User: vg      
Date: 05/02/16 07:48:17

Modified:
 /dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/
  StorageAccess.java

Log:
 INTEGRATION: CWS hsqldb2 (1.2.20); FILE MERGED
 2005/01/28 12:21:05 oj 1.2.20.2: #i39922# new interfaces in hsqldb
 2005/01/26 09:05:06 oj 1.2.20.1: new version of hsqldb

File Changes:

Directory: /dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/
============================================================

File [changed]: StorageAccess.java
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageAccess.java?r1=1.2&r2=1.3
Delta lines:  +92 -30
---------------------
--- StorageAccess.java  9 Nov 2004 12:06:02 -0000       1.2
+++ StorageAccess.java  16 Feb 2005 15:48:14 -0000      1.3
@@ -80,45 +80,74 @@
 import com.sun.star.lang.XComponent;
 import com.sun.star.uno.UnoRuntime;
 import com.sun.star.beans.NamedValue;
+// import org.hsqldb.lib.SimpleLog;
 
-public class StorageAccess implements org.hsqldb.Storage {
+public class StorageAccess implements org.hsqldb.lib.Storage {
     String key;
     String name;
+    boolean readonly;
     NativeStorageAccess access;
+//     public SimpleLog appLog;
     /** Creates a new instance of StorageAccess */
-    public StorageAccess(String name,String _mode,Object key) throws 
java.lang.Exception{
+    public StorageAccess(String name,Boolean readonly,Object key) throws 
java.io.IOException{
         this.key = (String)key;
         this.name = name;
+        this.readonly = readonly.booleanValue();
         try {
-            access = new NativeStorageAccess(name,_mode,key);
+            access = new NativeStorageAccess(name,
+                    this.readonly ? "r" : "rw"
+                    ,key);
         } catch(Exception e){            
-            throw new java.lang.Exception();
+            throw new java.io.IOException();
         }
+       //      appLog = new SimpleLog(name +".app3.log", true);
     }
-    public void close() throws java.lang.Exception{
+    public void close() throws java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.close() ");
+               //appLog.close();
         access.close(name,key);
     }
     
-    public long getFilePointer() throws java.lang.Exception{
+    public long getFilePointer() throws java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.getFilePointer() ");
         return access.getFilePointer(name,key);
     }
     
-    public long length() throws java.lang.Exception{
+    public long length() throws java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.length() ");
         return access.length(name,key);
     }
     
-    public int read() throws java.lang.Exception{
+    public int read() throws java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.read() ");
         return access.read(name,key);
     }
     
-    public void read(byte[] b, int off, int len) throws java.lang.Exception{
+    public void read(byte[] b, int off, int len) throws java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.read(" + b + ","+ off 
+","+len + ") ");
         access.read(name,key,b,off,len);
     }
     
-    public int readInt() throws java.lang.Exception{
+    // fredt - this is based on the same code that reads an int from the .data 
file in HSQLDB
+    public int readInt() throws java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.readInt() ");
         byte [] tmp = new byte [4]; 
-        read(tmp,0, 4);
 
+        int count = access.read(name,key,tmp,0, 4);
+
+        if (count != 4){
+            throw new java.io.IOException();
+        }
+
+        count = 0;
+        int ch0 = tmp[count++] & 0xff;
+        int ch1 = tmp[count++] & 0xff;
+        int ch2 = tmp[count++] & 0xff;
+        int ch3 = tmp[count] & 0xff;
+
+        return ((ch0 << 24) + (ch1 << 16) + (ch2 << 8) + (ch3));
+
+/*
         int ch [] = new int[4];
         for(int i = 0;i < 4; ++i){
             ch[i] = tmp[i];
@@ -128,20 +157,24 @@
         }
         
        if ((ch[0] | ch[1] | ch[2] | ch[3]) < 0)
-           throw new Exception();
+           throw new java.io.IOException();
        return ((ch[0] << 24) + (ch[1] << 16) + (ch[2] << 8) + (ch[3] << 0));
         //return access.readInt(name,key);
+*/
     }
     
-    public void seek(long position) throws java.lang.Exception{
+    public void seek(long position) throws java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.seek("+position +") ");
         access.seek(name,key,position);
     }
     
-    public void write(byte[] b, int offset, int length) throws 
java.lang.Exception{
+    public void write(byte[] b, int offset, int length) throws 
java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.write(" + b + "," + offset 
+","+length+") ");
         access.write(name,key,b,offset,length);
     }
     
-    public void writeInt(int v) throws java.lang.Exception{
+    public void writeInt(int v) throws java.io.IOException{
+               //appLog.sendLine("NIOScaledRAFile.writeInt(" +v+") ");
         byte [] oneByte = new byte [4];
         oneByte[0] = (byte) ((v >>> 24) & 0xFF);
         oneByte[1] = (byte) ((v >>> 16) & 0xFF);
@@ -149,6 +182,35 @@
         oneByte[3] = (byte) ((v >>>  0) & 0xFF);
 
         write(oneByte,0,4);
-        //access.writeInt(name,key,v);
+    }
+
+    public boolean isReadOnly() {
+        return readonly;
+    }
+
+    // fredt - minor change of brackets
+    public long readLong() throws java.io.IOException {
+        // return ((long)(readInt()) << 32) + (readInt() & 0xFFFFFFFFL);
+        return (((long) readInt()) << 32) + (((long) readInt()) & 0xFFFFFFFFL);
+    }
+
+    public boolean wasNio() {
+        return false;
+    }
+
+    public void writeLong(long v) throws java.io.IOException {
+               //appLog.sendLine("NIOScaledRAFile.writeLong(" +v+") ");
+        byte [] oneByte = new byte [8];
+
+        oneByte[0] = (byte) ((v >>> 56) & 0xFF);
+        oneByte[1] = (byte) ((v >>> 48) & 0xFF);
+        oneByte[2] = (byte) ((v >>> 40) & 0xFF);
+        oneByte[3] = (byte) ((v >>> 32) & 0xFF);
+        oneByte[4] = (byte) ((v >>> 24) & 0xFF);
+        oneByte[5] = (byte) ((v >>> 16) & 0xFF);
+        oneByte[6] = (byte) ((v >>>  8) & 0xFF);
+        oneByte[7] = (byte) ((v >>>  0) & 0xFF);
+
+        write(oneByte,0,8);
     }
 }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to