using System;
using System.Collections.Generic;
namespace ZeroLevel.Services.PartitionStorage
{
///
/// Provides read-write operations in catalog partition
///
/// Key type
/// Type of one input value
/// Type of records aggregate
public interface IStorePartitionAccessor
: IDisposable
{
///
/// Save one record
///
void Store(TKey key, TInput value);
///
/// Complete the recording and perform the conversion of the records from
/// (TKey; TInput) to (TKey; TValue)
///
void CompleteStoreAndRebuild();
///
/// Rebuild indexes
///
void RebuildIndex();
///
/// Find in catalog partition by key
///
StorePartitionKeyValueSearchResult Find(TKey key);
///
/// Find in catalog partition by keys
///
IEnumerable> Find(IEnumerable keys);
IEnumerable> Iterate();
IEnumerable> IterateKeyBacket(TKey key);
///
/// Has any files
///
int CountDataFiles();
///
/// Remove all files
///
void DropData();
}
}