org.apache.hadoop.hbase.io.hfile
Class HFileReaderV2.ScannerV2

java.lang.Object
  extended by org.apache.hadoop.hbase.io.hfile.AbstractHFileReader.Scanner
      extended by org.apache.hadoop.hbase.io.hfile.HFileReaderV2.ScannerV2
All Implemented Interfaces:
HFileScanner
Enclosing class:
HFileReaderV2

protected static class HFileReaderV2.ScannerV2
extends AbstractHFileReader.Scanner

Implementation of HFileScanner interface.


Field Summary
 
Fields inherited from class org.apache.hadoop.hbase.io.hfile.AbstractHFileReader.Scanner
blockBuffer, blockFetches, cacheBlocks, currKeyLen, currMemstoreTS, currMemstoreTSLen, currValueLen, isCompaction, pread
 
Constructor Summary
HFileReaderV2.ScannerV2(HFileReaderV2 r, boolean cacheBlocks, boolean pread, boolean isCompaction)
           
 
Method Summary
 ByteBuffer getKey()
          Gets a buffer view to the current key.
 String getKeyString()
          Convenience method to get a copy of the key as a string - interpreting the bytes as UTF8.
 KeyValue getKeyValue()
           
 HFileReaderV2 getReader()
           
 ByteBuffer getValue()
          Gets a buffer view to the current value.
 String getValueString()
          Convenience method to get a copy of the value as a string - interpreting the bytes as UTF8.
 boolean next()
          Go to the next key/value in the block section.
 int reseekTo(byte[] key)
          Reseek to or just before the passed key.
 int reseekTo(byte[] key, int offset, int length)
           
 boolean seekBefore(byte[] key)
          Consider the key stream of all the keys in the file, k[0] ..
 boolean seekBefore(byte[] key, int offset, int length)
           
 boolean seekTo()
          Positions this scanner at the start of the file.
 int seekTo(byte[] key)
          SeekTo or just before the passed key.
 int seekTo(byte[] key, int offset, int length)
           
 
Methods inherited from class org.apache.hadoop.hbase.io.hfile.AbstractHFileReader.Scanner
assertSeeked, isSeeked, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HFileReaderV2.ScannerV2

public HFileReaderV2.ScannerV2(HFileReaderV2 r,
                               boolean cacheBlocks,
                               boolean pread,
                               boolean isCompaction)
Method Detail

getReader

public HFileReaderV2 getReader()
Returns:
Reader that underlies this Scanner instance.

getKeyValue

public KeyValue getKeyValue()
Returns:
Instance of KeyValue.

getKey

public ByteBuffer getKey()
Description copied from interface: HFileScanner
Gets a buffer view to the current key. You must call HFileScanner.seekTo(byte[]) before this method.

Returns:
byte buffer for the key. The limit is set to the key size, and the position is 0, the start of the buffer view.

getValue

public ByteBuffer getValue()
Description copied from interface: HFileScanner
Gets a buffer view to the current value. You must call HFileScanner.seekTo(byte[]) before this method.

Returns:
byte buffer for the value. The limit is set to the value size, and the position is 0, the start of the buffer view.

next

public boolean next()
             throws IOException
Go to the next key/value in the block section. Loads the next block if necessary. If successful, getKey() and getValue() can be called.

Returns:
true if successfully navigated to the next key/value
Throws:
IOException

seekTo

public boolean seekTo()
               throws IOException
Positions this scanner at the start of the file.

Returns:
false if empty file; i.e. a call to next would return false and the current key and value are undefined.
Throws:
IOException

seekTo

public int seekTo(byte[] key)
           throws IOException
Description copied from interface: HFileScanner
SeekTo or just before the passed key. Examine the return code to figure whether we found the key or not. Consider the key stream of all the keys in the file, k[0] .. k[n], where there are n keys in the file.

Parameters:
key - Key to find.
Returns:
-1, if key < k[0], no position; 0, such that k[i] = key and scanner is left in position i; and 1, such that k[i] < key, and scanner is left in position i. The scanner will position itself between k[i] and k[i+1] where k[i] < key <= k[i+1]. If there is no key k[i+1] greater than or equal to the input key, then the scanner will position itself at the end of the file and next() will return false when it is called.
Throws:
IOException

seekTo

public int seekTo(byte[] key,
                  int offset,
                  int length)
           throws IOException
Throws:
IOException

reseekTo

public int reseekTo(byte[] key)
             throws IOException
Description copied from interface: HFileScanner
Reseek to or just before the passed key. Similar to seekTo except that this can be called even if the scanner is not at the beginning of a file. This can be used to seek only to keys which come after the current position of the scanner. Consider the key stream of all the keys in the file, k[0] .. k[n], where there are n keys in the file after current position of HFileScanner. The scanner will position itself between k[i] and k[i+1] where k[i] < key <= k[i+1]. If there is no key k[i+1] greater than or equal to the input key, then the scanner will position itself at the end of the file and next() will return false when it is called.

Parameters:
key - Key to find (should be non-null)
Returns:
-1, if key < k[0], no position; 0, such that k[i] = key and scanner is left in position i; and 1, such that k[i] < key, and scanner is left in position i.
Throws:
IOException

reseekTo

public int reseekTo(byte[] key,
                    int offset,
                    int length)
             throws IOException
Throws:
IOException

seekBefore

public boolean seekBefore(byte[] key)
                   throws IOException
Description copied from interface: HFileScanner
Consider the key stream of all the keys in the file, k[0] .. k[n], where there are n keys in the file.

Parameters:
key - Key to find
Returns:
false if key <= k[0] or true with scanner in position 'i' such that: k[i] < key. Furthermore: there may be a k[i+1], such that k[i] < key <= k[i+1] but there may also NOT be a k[i+1], and next() will return false (EOF).
Throws:
IOException

seekBefore

public boolean seekBefore(byte[] key,
                          int offset,
                          int length)
                   throws IOException
Throws:
IOException

getKeyString

public String getKeyString()
Description copied from interface: HFileScanner
Convenience method to get a copy of the key as a string - interpreting the bytes as UTF8. You must call HFileScanner.seekTo(byte[]) before this method.

Returns:
key as a string

getValueString

public String getValueString()
Description copied from interface: HFileScanner
Convenience method to get a copy of the value as a string - interpreting the bytes as UTF8. You must call HFileScanner.seekTo(byte[]) before this method.

Returns:
value as a string


Copyright © 2012 The Apache Software Foundation. All Rights Reserved.