org.apache.cassandra.io.sstable.format.big

## Class BigTableScanner

- java.lang.Object
- - org.apache.cassandra.io.sstable.format.big.BigTableScanner

All Implemented Interfaces:
  java.lang.AutoCloseable, java.util.Iterator<UnfilteredRowIterator>, BasePartitionIterator<UnfilteredRowIterator>, UnfilteredPartitionIterator, ISSTableScanner, CloseableIterator<UnfilteredRowIterator>

    public class BigTableScanner
    extends java.lang.Object
    implements ISSTableScanner

### Nested Class Summary

Nested Classes
`static class` `BigTableScanner.EmptySSTableScanner`
`protected class` `BigTableScanner.KeyScanningIterator`

### Field Summary

Fields
`protected RandomAccessReader` `dfile`
`protected RandomAccessReader` `ifile`
`protected java.util.Iterator<UnfilteredRowIterator>` `iterator`
`SSTableReader` `sstable`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `close()`
`java.lang.String` `getBackingFiles()`
`long` `getBytesScanned()`
`long` `getCompressedLengthInBytes()`
`long` `getCurrentPosition()`
`long` `getLengthInBytes()`
`static ISSTableScanner` `getScanner(SSTableReader sstable, java.util.Collection<Range<Token>> tokenRanges, com.google.common.util.concurrent.RateLimiter limiter)`
`static ISSTableScanner` `getScanner(SSTableReader sstable, ColumnFilter columns, DataRange dataRange, com.google.common.util.concurrent.RateLimiter limiter, boolean isForThrift, SSTableReadsListener listener)`
`static ISSTableScanner` `getScanner(SSTableReader sstable, java.util.Iterator<AbstractBounds<PartitionPosition>> rangeIterator)`
`static ISSTableScanner` `getScanner(SSTableReader sstable, com.google.common.util.concurrent.RateLimiter limiter)`
`boolean` `hasNext()`
`boolean` `isForThrift()` Whether that partition iterator is for a thrift queries.
`CFMetaData` `metadata()`
`UnfilteredRowIterator` `next()`
`void` `remove()`
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Iterator

`forEachRemaining`

### Field Detail

#### dfile

    protected final RandomAccessReader dfile

#### ifile

    protected final RandomAccessReader ifile

#### sstable

    public final SSTableReader sstable

#### iterator

    protected java.util.Iterator<UnfilteredRowIterator> iterator

### Method Detail

#### getScanner

    public static ISSTableScanner getScanner(SSTableReader sstable,
                                             com.google.common.util.concurrent.RateLimiter limiter)

#### getScanner

    public static ISSTableScanner getScanner(SSTableReader sstable,
                                             ColumnFilter columns,
                                             DataRange dataRange,
                                             com.google.common.util.concurrent.RateLimiter limiter,
                                             boolean isForThrift,
                                             SSTableReadsListener listener)

#### getScanner

    public static ISSTableScanner getScanner(SSTableReader sstable,
                                             java.util.Collection<Range<Token>> tokenRanges,
                                             com.google.common.util.concurrent.RateLimiter limiter)

#### getScanner

    public static ISSTableScanner getScanner(SSTableReader sstable,
                                             java.util.Iterator<AbstractBounds<PartitionPosition>> rangeIterator)

#### close

    public void close()

Specified by:
  `close` in interface `java.lang.AutoCloseable`
Specified by:
  `close` in interface `BasePartitionIterator<UnfilteredRowIterator>`
Specified by:
  `close` in interface `CloseableIterator<UnfilteredRowIterator>`

#### getLengthInBytes

    public long getLengthInBytes()

Specified by:
  `getLengthInBytes` in interface `ISSTableScanner`

#### getCurrentPosition

    public long getCurrentPosition()

Specified by:
  `getCurrentPosition` in interface `ISSTableScanner`

#### getBytesScanned

    public long getBytesScanned()

Specified by:
  `getBytesScanned` in interface `ISSTableScanner`

#### getCompressedLengthInBytes

    public long getCompressedLengthInBytes()

Specified by:
  `getCompressedLengthInBytes` in interface `ISSTableScanner`

#### getBackingFiles

    public java.lang.String getBackingFiles()

Specified by:
  `getBackingFiles` in interface `ISSTableScanner`

#### isForThrift

    public boolean isForThrift()

Description copied from interface: `UnfilteredPartitionIterator`
Whether that partition iterator is for a thrift queries.

If this is true, the partition iterator may return some empty UnfilteredRowIterator and those should be preserved as thrift include partitions that "exists" (have some cells even if this are actually deleted) but have nothing matching the query.

Specified by:
  `isForThrift` in interface `UnfilteredPartitionIterator`
Returns:
  whether the iterator is for a thrift query.

#### metadata

    public CFMetaData metadata()

Specified by:
  `metadata` in interface `UnfilteredPartitionIterator`

#### hasNext

    public boolean hasNext()

Specified by:
  `hasNext` in interface `java.util.Iterator<UnfilteredRowIterator>`

#### next

    public UnfilteredRowIterator next()

Specified by:
  `next` in interface `java.util.Iterator<UnfilteredRowIterator>`

#### remove

    public void remove()

Specified by:
  `remove` in interface `java.util.Iterator<UnfilteredRowIterator>`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`