FileDocCategorySizeDatePackage
RAMInputStream.javaAPI DocApache Lucene 1.91806Mon Feb 20 09:20:16 GMT 2006org.apache.lucene.store

RAMInputStream

public class RAMInputStream extends BufferedIndexInput implements Cloneable
A memory-resident {@link IndexInput} implementation.
version
$Id: RAMInputStream.java 150537 2004-09-28 20:45:26Z cutting $

Fields Summary
private RAMFile
file
private int
pointer
private long
length
Constructors Summary
public RAMInputStream(RAMFile f)


     
    file = f;
    length = file.length;
  
Methods Summary
public voidclose()

  
public longlength()

    return length;
  
public voidreadInternal(byte[] dest, int destOffset, int len)

    int remainder = len;
    int start = pointer;
    while (remainder != 0) {
      int bufferNumber = start/BUFFER_SIZE;
      int bufferOffset = start%BUFFER_SIZE;
      int bytesInBuffer = BUFFER_SIZE - bufferOffset;
      int bytesToCopy = bytesInBuffer >= remainder ? remainder : bytesInBuffer;
      byte[] buffer = (byte[])file.buffers.elementAt(bufferNumber);
      System.arraycopy(buffer, bufferOffset, dest, destOffset, bytesToCopy);
      destOffset += bytesToCopy;
      start += bytesToCopy;
      remainder -= bytesToCopy;
    }
    pointer += len;
  
public voidseekInternal(long pos)

    pointer = (int)pos;