Tag: cws_src680_hsqldb2
User: oj      
Date: 05/01/26 01:05:10

Modified:
 /dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/
  NativeOutputStreamHelper.java, NativeStorageAccess.java, StorageAccess.java,
  StorageFileAccess.java, StorageNativeOutputStream.java

Log:
 new version of hsqldb

File Changes:

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

File [changed]: NativeOutputStreamHelper.java
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeOutputStreamHelper.java?r1=1.2&r2=1.2.20.1
Delta lines:  +3 -0
-------------------
--- NativeOutputStreamHelper.java       9 Nov 2004 12:05:43 -0000       1.2
+++ NativeOutputStreamHelper.java       26 Jan 2005 09:05:06 -0000      1.2.20.1
@@ -45,4 +45,7 @@
         out.flush(storage,key,file);
     }
     
+    public void sync()  throws java.io.IOException{
+        out.sync(storage,key,file);
+    }
 }

File [changed]: NativeStorageAccess.java
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeStorageAccess.java?r1=1.3&r2=1.3.2.1
Delta lines:  +15 -15
---------------------
--- NativeStorageAccess.java    21 Jan 2005 16:36:44 -0000      1.3
+++ NativeStorageAccess.java    26 Jan 2005 09:05:06 -0000      1.3.2.1
@@ -95,33 +95,33 @@
                
NativeLibraryLoader.loadLibrary(StorageNativeOutputStream.class.getClassLoader(),
 "hsqldb2");
        }
     /** Creates a new instance of StorageAccess */
-    public NativeStorageAccess(String name,String _mode,Object key) throws 
java.lang.Exception{
+    public NativeStorageAccess(String name,String _mode,Object key) throws 
java.io.IOException{
         try {
             int mode = ElementModes.SEEKABLEREAD;
             if ( _mode.equals("rw") )
-                mode |= ElementModes.WRITE; 
+                mode = ElementModes.READWRITE | ElementModes.SEEKABLE; 
 
             openStream(name, (String)key, mode);
         } catch(Exception e){            
-            throw new java.lang.Exception();
+            throw new java.io.IOException();
         }
     }
     public native void openStream(String name,String key, int mode);
-    public native void close(String name,String key) throws 
java.lang.Exception;
+    public native void close(String name,String key) throws 
java.io.IOException;
     
-    public native long getFilePointer(String name,String key) throws 
java.lang.Exception;
+    public native long getFilePointer(String name,String key) throws 
java.io.IOException;
     
-    public native long length(String name,String key) throws 
java.lang.Exception;
+    public native long length(String name,String key) throws 
java.io.IOException;
     
-    public native int read(String name,String key) throws java.lang.Exception;
+    public native int read(String name,String key) throws java.io.IOException;
     
-    public native void read(String name,String key,byte[] b, int off, int len) 
throws java.lang.Exception;
+    public native int read(String name,String key,byte[] b, int off, int len) 
throws java.io.IOException;
     
-    public native int readInt(String name,String key) throws 
java.lang.Exception;
+    public native int readInt(String name,String key) throws 
java.io.IOException;
     
-    public native void seek(String name,String key,long position) throws 
java.lang.Exception;
+    public native void seek(String name,String key,long position) throws 
java.io.IOException;
     
-    public native void write(String name,String key,byte[] b, int offset, int 
length) throws java.lang.Exception;
+    public native void write(String name,String key,byte[] b, int offset, int 
length) throws java.io.IOException;
     
-    public native void writeInt(String name,String key,int v) throws 
java.lang.Exception;
+    public native void writeInt(String name,String key,int v) throws 
java.io.IOException;
 }

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.2.20.1
Delta lines:  +91 -29
---------------------
--- StorageAccess.java  9 Nov 2004 12:06:02 -0000       1.2
+++ StorageAccess.java  26 Jan 2005 09:05:06 -0000      1.2.20.1
@@ -2,9 +2,9 @@
  *
  *  $RCSfile: StorageAccess.java,v $
  *
- *  $Revision: 1.2 $
+ *  $Revision: 1.2.20.1 $
  *
- *  last change: $Author: hr $ $Date: 2004/11/09 12:06:02 $
+ *  last change: $Author: oj $ $Date: 2005/01/26 09:05:06 $
  *
  *  The Contents of this file are made available subject to the terms of
  *  either of the following licenses
@@ -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);
     }
 }

File [changed]: StorageFileAccess.java
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageFileAccess.java?r1=1.3&r2=1.3.2.1
Delta lines:  +17 -0
--------------------
--- StorageFileAccess.java      21 Jan 2005 16:36:57 -0000      1.3
+++ StorageFileAccess.java      26 Jan 2005 09:05:07 -0000      1.3.2.1
@@ -119,6 +119,23 @@
         }
     }
     
+    public class FileSync implements FileAccess.FileSync
+    {
+        NativeOutputStreamHelper os;
+        FileSync(NativeOutputStreamHelper _os) throws java.io.IOException
+        {
+            os = _os;
+        }
+        public void sync() throws java.io.IOException
+        {
+        }
+    }
+    
+    public FileAccess.FileSync getFileSync(java.io.OutputStream os) throws 
java.io.IOException
+    {
+        return new FileSync((NativeOutputStreamHelper)os);
+    }
+    
     static native boolean isStreamElement(java.lang.String 
key,java.lang.String elementName) throws java.util.NoSuchElementException, 
java.io.IOException;
     static native void removeElement(java.lang.String key,java.lang.String 
filename) throws java.util.NoSuchElementException, java.io.IOException;
     static native void renameElement(java.lang.String key,java.lang.String 
oldName, java.lang.String newName) throws java.util.NoSuchElementException, 
java.io.IOException;

File [changed]: StorageNativeOutputStream.java
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageNativeOutputStream.java?r1=1.3&r2=1.3.2.1
Delta lines:  +29 -2
--------------------
--- StorageNativeOutputStream.java      21 Jan 2005 16:37:31 -0000      1.3
+++ StorageNativeOutputStream.java      26 Jan 2005 09:05:07 -0000      1.3.2.1
@@ -13,7 +13,8 @@
  * @author  oj93728
  */
 public class StorageNativeOutputStream {
-    
+    String name;
+    Object key;
     static {
        // preload shared libraries whichs import lips are linked to jpipe
        if ( System.getProperty( "os.name" ).startsWith( "Windows" ) )
@@ -28,7 +29,9 @@
         
NativeLibraryLoader.loadLibrary(StorageNativeOutputStream.class.getClassLoader(),
 "hsqldb2");
     }
     /** Creates a new instance of StorageNativeOutputStream */
-    public StorageNativeOutputStream(String name,Object key) {
+    public StorageNativeOutputStream(String _name,Object _key) {
+        name = _name;
+        key = _key;
         openStream(name, (String)key, ElementModes.WRITE);
     }
     
@@ -124,5 +127,29 @@
      * @exception  IOException  if an I/O error occurs.
      */
     public native void flush(XStorage storage,String key,String _file) throws 
java.io.IOException;
+    
+    /**
+     * Force all system buffers to synchronize with the underlying
+     * device.  This method returns after all modified data and
+     * attributes have been written to the relevant device(s). 
+     *
+     * sync is meant to be used by code that requires physical
+     * storage (such as a file) to be in a known state  For
+     * example, a class that provided a simple transaction facility
+     * might use sync to ensure that all changes to a file caused
+     * by a given transaction were recorded on a storage medium.
+     *
+     * sync only affects buffers downstream.  If
+     * any in-memory buffering is being done by the application (for
+     * example, by a BufferedOutputStream object), those buffers must
+     * be flushed (for example, by invoking
+     * OutputStream.flush) before that data will be affected by sync.
+     *
+     * @exception IOException
+     *       Thrown when the buffers cannot be flushed,
+     *       or because the system cannot guarantee that all the
+     *       buffers have been synchronized with physical media.
+     */
+    public native void sync(XStorage storage,String key,String _file) throws 
java.io.IOException;
     
 }




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

Reply via email to