// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
using System;
namespace FASTER.core
{
///
/// Scan buffering mode
///
public enum ScanBufferingMode
{
///
/// Buffer only current page being scanned
///
SinglePageBuffering,
///
/// Buffer current and next page in scan sequence
///
DoublePageBuffering,
///
/// Do not buffer - with this mode, you can only scan records already in main memory
///
NoBuffering
}
///
/// Scan iterator interface for FASTER log
///
///
///
public interface IFasterScanIterator : IDisposable
{
///
/// Gets reference to current key
///
///
ref Key GetKey();
///
/// Gets reference to current value
///
///
ref Value GetValue();
///
/// Get next record
///
///
/// True if record found, false if end of scan
bool GetNext(out RecordInfo recordInfo);
///
/// Get next record
///
///
///
///
/// True if record found, false if end of scan
bool GetNext(out RecordInfo recordInfo, out Key key, out Value value);
///
/// Current address
///
long CurrentAddress { get; }
}
}