FileDocCategorySizeDatePackage
RAMInputStream.javaAPI DocApache Lucene 2.0.01815Fri May 26 09:54:20 BST 2006org.apache.lucene.store

RAMInputStream

public class RAMInputStream extends BufferedIndexInput implements Cloneable
A memory-resident {@link IndexInput} implementation.
version
$Id: RAMInputStream.java 408916 2006-05-23 15:01:11Z yonik $

Fields Summary
private RAMFile
file
private long
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;
    long start = pointer;
    while (remainder != 0) {
      int bufferNumber = (int)(start/BUFFER_SIZE);
      int bufferOffset = (int)(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 = pos;