public void get(final long index, final ByteArray bytes) { get(index, bytes, 0, bytes.length); }
public void set(final long index, final ByteArray bytes) { set(index, bytes, 0, bytes.length); }
@Override public final ByteArray byteArray(long start, long numBytes) { return new ByteArray(this, start, numBytes); }
@Override public void lookup(int[] docIds, long[] values, int n) { for (int i = 0; i < n; ++i) { values[i] = byteArray.get(docIds[i]); } }
public void get(final long index, final ByteArray bytes, final long start, final long length) { bytes.set(start, this, index, length); }
public ByteArray slice(final long start, final long length) { return new ByteArray(buffer, start, length); } }
@Override public void lookup(int[] docIds, long[] values, int n) { for (int i = 0; i < n; ++i) { values[i] = byteArray.get(docIds[i]) & 0xFF; } }
public void set(final long index, final byte[] bytes) { set(index, bytes, 0, bytes.length); }
public void get(final long index, final byte[] bytes) { get(index, bytes, 0, bytes.length); }
public static MMapBuffer cacheByteFieldToFile(UnsortedIntTermDocIterator iterator, int numDocs, File file) throws IOException { final int[] docIdBuf = new int[BUFFER_SIZE]; final MMapBuffer buffer = new MMapBuffer(file, 0L, numDocs, FileChannel.MapMode.READ_WRITE, ByteOrder.LITTLE_ENDIAN); final ByteArray byteArray = buffer.memory().byteArray(0, numDocs); try { while (iterator.nextTerm()) { final byte term = (byte)iterator.term(); while (true) { final int n = iterator.nextDocs(docIdBuf); for (int i = 0; i < n; ++i) { byteArray.set(docIdBuf[i], term); } if (n < docIdBuf.length) { break; } } } buffer.sync(0, numDocs); } catch (RuntimeException e) { Closeables2.closeQuietly(buffer, LOG); throw e; } catch (IOException e) { Closeables2.closeQuietly(buffer, LOG); throw e; } return buffer; }