using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace ZeroLevel.Services.PartitionStorage
{
///
/// Partition store interface
///
/// Record key
/// The value that is written in the stream
/// Value after compression of TInput values by duplicate keys (TInput list or similar)
/// Meta information for partition search
public interface IStore
{
IStorePartitionBuilder CreateBuilder(TMeta info);
IStorePartitionBuilder CreateMergeAccessor(TMeta info, Func> decompressor);
IStorePartitionAccessor CreateAccessor(TMeta info);
Task> Search(StoreSearchRequest searchRequest);
void RemovePartition(TMeta info);
}
}