1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 /* 28 * StorageAccess.java 29 * 30 * Created on 17. August 2004, 13:32 31 */ 32 33 package com.sun.star.sdbcx.comp.hsqldb; 34 35 /** 36 * 37 * @author oj93728 38 */ 39 40 public class NativeStorageAccess { 41 static { NativeLibraries.load(); } 42 43 public static final int READ = 1; 44 public static final int SEEKABLE = 2; 45 public static final int SEEKABLEREAD = 3; 46 public static final int WRITE = 4; 47 public static final int READWRITE = 7; 48 public static final int TRUNCATE = 8; 49 50 /** Creates a new instance of StorageAccess */ 51 public NativeStorageAccess(String name,String _mode,Object key) throws java.io.IOException{ 52 try { 53 int mode = NativeStorageAccess.SEEKABLEREAD; 54 if ( _mode.equals("rw") ) 55 mode = NativeStorageAccess.READWRITE | NativeStorageAccess.SEEKABLE; 56 57 openStream(name, (String)key, mode); 58 } catch(Exception e){ 59 throw new java.io.IOException(); 60 } 61 } 62 public native void openStream(String name,String key, int mode); 63 public native void close(String name,String key) throws java.io.IOException; 64 65 public native long getFilePointer(String name,String key) throws java.io.IOException; 66 67 public native long length(String name,String key) throws java.io.IOException; 68 69 public native int read(String name,String key) throws java.io.IOException; 70 71 public native int read(String name,String key,byte[] b, int off, int len) throws java.io.IOException; 72 73 public native int readInt(String name,String key) throws java.io.IOException; 74 75 public native void seek(String name,String key,long position) throws java.io.IOException; 76 77 public native void write(String name,String key,byte[] b, int offset, int length) throws java.io.IOException; 78 79 public native void writeInt(String name,String key,int v) throws java.io.IOException; 80 } 81