git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6396 6c8d7289-2bf4-0310-a012-ef5d649a1542pull/1/head
parent
c0e0e1f422
commit
bd876eb4b7
@ -1,62 +0,0 @@
|
||||
// kelondroIOChunks.java
|
||||
// -----------------------
|
||||
// part of The Kelondro Database
|
||||
// (C) by Michael Peter Christen; mc@yacy.net
|
||||
// first published on http://www.anomic.de
|
||||
// Frankfurt, Germany, 2005
|
||||
// created: 11.12.2005
|
||||
//
|
||||
// This program 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 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program 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 this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
package de.anomic.kelondro.io.chunks;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import de.anomic.kelondro.io.random.Writer;
|
||||
|
||||
|
||||
public interface IOChunksInterface {
|
||||
|
||||
// logging support
|
||||
public String name();
|
||||
|
||||
// reference handling
|
||||
public Writer getRA();
|
||||
|
||||
// pseudo-native methods:
|
||||
public long length() throws IOException;
|
||||
public void readFully(long pos, byte[] b, int off, int len) throws IOException;
|
||||
public void write(long pos, byte[] b, int off, int len) throws IOException;
|
||||
public void commit() throws IOException;
|
||||
public void close() throws IOException;
|
||||
|
||||
// derived methods:
|
||||
public byte readByte(long pos) throws IOException;
|
||||
public void writeByte(long pos, int v) throws IOException;
|
||||
|
||||
public short readShort(long pos) throws IOException;
|
||||
public void writeShort(long pos, int v) throws IOException;
|
||||
|
||||
public int readInt(long pos) throws IOException;
|
||||
public void writeInt(long pos, int v) throws IOException;
|
||||
|
||||
public long readLong(long pos) throws IOException;
|
||||
public void writeLong(long pos, long v) throws IOException;
|
||||
|
||||
public void write(long pos, byte[] b) throws IOException;
|
||||
public void writeSpace(long pos, int spacecount) throws IOException;
|
||||
|
||||
public void deleteOnExit();
|
||||
}
|
@ -1,77 +0,0 @@
|
||||
// kelondroRAIOChunks.java
|
||||
// -----------------------
|
||||
// part of The Kelondro Database
|
||||
// (C) by Michael Peter Christen; mc@yacy.net
|
||||
// first published on http://www.anomic.de
|
||||
// Frankfurt, Germany, 2005
|
||||
// created: 11.12.2004
|
||||
//
|
||||
// This program 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 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program 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 this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
package de.anomic.kelondro.io.chunks;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import de.anomic.kelondro.io.random.Writer;
|
||||
|
||||
|
||||
public final class RandomAccessIOChunks extends AbstractIOChunks implements IOChunksInterface {
|
||||
|
||||
protected Writer ra;
|
||||
|
||||
public RandomAccessIOChunks(final Writer ra, final String name) {
|
||||
this.name = name;
|
||||
this.ra = ra;
|
||||
}
|
||||
|
||||
public Writer getRA() {
|
||||
return this.ra;
|
||||
}
|
||||
|
||||
public synchronized long length() throws IOException {
|
||||
return ra.length();
|
||||
}
|
||||
|
||||
public synchronized void readFully(long pos, final byte[] b, int off, int len) throws IOException {
|
||||
if (len == 0) return;
|
||||
this.ra.seek(pos);
|
||||
this.ra.readFully(b, off, len);
|
||||
}
|
||||
|
||||
public synchronized void write(final long pos, final byte[] b, final int off, final int len) throws IOException {
|
||||
if (len == 0) return;
|
||||
this.ra.seek(pos);
|
||||
this.ra.write(b, off, len);
|
||||
}
|
||||
|
||||
public void commit() throws IOException {
|
||||
// do nothing here
|
||||
// this method is used to flush write-buffers
|
||||
}
|
||||
|
||||
public synchronized void close() throws IOException {
|
||||
if (this.ra != null) this.ra.close();
|
||||
this.ra = null;
|
||||
}
|
||||
|
||||
protected void finalize() throws Throwable {
|
||||
if (this.ra != null) this.close();
|
||||
super.finalize();
|
||||
}
|
||||
|
||||
public void deleteOnExit() {
|
||||
this.ra.deleteOnExit();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue