Package org.eclipse.mat.parser.index
Class IndexReader.IntIndexReader
- java.lang.Object
-
- org.eclipse.mat.parser.index.IndexReader.IntIndexReader
-
- All Implemented Interfaces:
IIndexReader,IIndexReader.IOne2OneIndex
- Enclosing class:
- IndexReader
public static class IndexReader.IntIndexReader extends java.lang.Object implements IIndexReader.IOne2OneIndex
An int to int index reader. Disk file structure:Page 0: ArrayIntCompressed Page 1: ArrayIntCompressed ... Page n: ArrayIntCompressed page 0 start in file (8) page 1 start in file (8) ... page n start in file (8) page n+1 start in file (8) (i.e. location of 'page 0 start in file' field) page size (4) total size (4)
Experimental for version 1.2: The disk format has been enhanced to allow more than 2^31 entries by using the page n+1 start pointer to find the start of the page offsets, and so the number of pages, and the size field is then negative and used to measure the number of entries on the last page (from 1 to page size). This is experimental and index files with 2^31 entries or more are not compatible with 1.1 or earlier and might not be compatible with 1.3 or later.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.mat.parser.index.IIndexReader
IIndexReader.IOne2LongIndex, IIndexReader.IOne2ManyIndex, IIndexReader.IOne2ManyObjectsIndex, IIndexReader.IOne2OneIndex, IIndexReader.IOne2SizeIndex
-
-
Field Summary
Fields Modifier and Type Field Description SimpleBufferedRandomAccessInputStreaminFor use reading the actual index filejava.lang.ObjectLOCKThe lock to protect the read from concurrent access
-
Constructor Summary
Constructors Constructor Description IntIndexReader(java.io.File indexFile)IntIndexReader(java.io.File indexFile, org.eclipse.mat.parser.index.IndexWriter.Pages<java.lang.ref.SoftReference<ArrayIntCompressed>> pages, int size, int pageSize, long[] pageStart)IntIndexReader(SimpleBufferedRandomAccessInputStream in, long start, long length)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the backing file.voiddelete()Delete the backing file.intget(int index)int[]getAll(int[] index)int[]getNext(int index, int length)IteratorIntiterator()voidset(int index, int value)intsize()voidunload()Clear the caches.-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.mat.parser.index.IIndexReader
size
-
Methods inherited from interface org.eclipse.mat.parser.index.IIndexReader.IOne2OneIndex
get, getAll, getNext
-
-
-
-
Field Detail
-
LOCK
public java.lang.Object LOCK
The lock to protect the read from concurrent access
-
in
public SimpleBufferedRandomAccessInputStream in
For use reading the actual index file
-
-
Constructor Detail
-
IntIndexReader
public IntIndexReader(java.io.File indexFile, org.eclipse.mat.parser.index.IndexWriter.Pages<java.lang.ref.SoftReference<ArrayIntCompressed>> pages, int size, int pageSize, long[] pageStart)
-
IntIndexReader
public IntIndexReader(java.io.File indexFile) throws java.io.IOException- Throws:
java.io.IOException
-
IntIndexReader
public IntIndexReader(SimpleBufferedRandomAccessInputStream in, long start, long length) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
unload
public void unload()
Description copied from interface:IIndexReaderClear the caches. Used when the indexes are not current in use and the memory needs to be reclaimed such as when building the dominator tree.- Specified by:
unloadin interfaceIIndexReader
-
close
public void close()
Description copied from interface:IIndexReaderClose the backing file.- Specified by:
closein interfaceIIndexReader
-
delete
public void delete()
Description copied from interface:IIndexReaderDelete the backing file.- Specified by:
deletein interfaceIIndexReader
-
get
public int get(int index)
-
getNext
public int[] getNext(int index, int length)
-
getAll
public int[] getAll(int[] index)
-
set
public void set(int index, int value)
-
size
public int size()
-
iterator
public IteratorInt iterator()
-
-