summaryrefslogtreecommitdiff
path: root/connectivity/com/sun/star/sdbcx
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2005-02-16 14:48:14 +0000
committerVladimir Glazounov <vg@openoffice.org>2005-02-16 14:48:14 +0000
commit93a37652f9c14803405844a42e9131e23758fbbd (patch)
treee1a2e26bf581ec8ceeeda61d48713a9e28393ae3 /connectivity/com/sun/star/sdbcx
parent4cd2bd841a7d2affe54c72308df1f57fb32c774a (diff)
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
Diffstat (limited to 'connectivity/com/sun/star/sdbcx')
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeOutputStreamHelper.java17
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageAccess.java98
2 files changed, 89 insertions, 26 deletions
diff --git a/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeOutputStreamHelper.java b/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeOutputStreamHelper.java
index ab4545954677..e6b9856a8e04 100644
--- a/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeOutputStreamHelper.java
+++ b/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeOutputStreamHelper.java
@@ -15,34 +15,35 @@ public class NativeOutputStreamHelper extends java.io.OutputStream{
private String key;
private String file;
- XStorage storage;
private StorageNativeOutputStream out;
/** Creates a new instance of NativeOutputStreamHelper */
- public NativeOutputStreamHelper(String key,String _file,XStorage _storage) {
+ public NativeOutputStreamHelper(String key,String _file) {
file = _file;
- storage = _storage;
this.key = key;
out = new StorageNativeOutputStream(file,key);
}
public void write(byte[] b, int off, int len) throws java.io.IOException{
- out.write(storage,key,file,b, off, len);
+ out.write(key,file,b, off, len);
}
public void write(byte[] b) throws java.io.IOException{
- out.write(storage,key,file,b);
+ out.write(key,file,b);
}
public void close() throws java.io.IOException{
- out.close(storage,key,file);
+ out.close(key,file);
}
public void write(int b) throws java.io.IOException{
- out.write(storage,key,file,b);
+ out.write(key,file,b);
}
public void flush() throws java.io.IOException{
- out.flush(storage,key,file);
+ out.flush(key,file);
}
+ public void sync() throws java.io.IOException{
+ out.sync(key,file);
+ }
}
diff --git a/connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageAccess.java b/connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageAccess.java
index e612f96b5877..e6d996d532f2 100644
--- a/connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageAccess.java
+++ b/connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageAccess.java
@@ -2,9 +2,9 @@
*
* $RCSfile: StorageAccess.java,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: hr $ $Date: 2004-11-09 12:06:02 $
+ * last change: $Author: vg $ $Date: 2005-02-16 15:48:14 $
*
* 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.io.XSeekable;
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 @@ public class StorageAccess implements org.hsqldb.Storage {
}
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 @@ public class StorageAccess implements org.hsqldb.Storage {
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);
}
}