using System; namespace FASTER.core { /// /// Callback functions to FASTER /// /// /// /// /// /// public interface IFunctions { /// /// Read completion /// /// /// /// /// /// void ReadCompletionCallback(ref Key key, ref Input input, ref Output output, Context ctx, Status status); /// /// Upsert completion /// /// /// /// void UpsertCompletionCallback(ref Key key, ref Value value, Context ctx); /// /// RMW completion /// /// /// /// /// void RMWCompletionCallback(ref Key key, ref Input input, Context ctx, Status status); /// /// Delete completion /// /// /// void DeleteCompletionCallback(ref Key key, Context ctx); /// /// Checkpoint completion callback (called per client session) /// /// Session ID reporting persistence /// Checkpoint offset (CPR point) for session void CheckpointCompletionCallback(Guid sessionId, long serialNum); /// /// Initial update for RMW /// /// /// /// void InitialUpdater(ref Key key, ref Input input, ref Value value); /// /// Copy-update for RMW /// /// /// /// /// void CopyUpdater(ref Key key, ref Input input, ref Value oldValue, ref Value newValue); /// /// In-place update for RMW /// /// /// /// bool InPlaceUpdater(ref Key key, ref Input input, ref Value value); /// /// Single reader /// /// /// /// /// void SingleReader(ref Key key, ref Input input, ref Value value, ref Output dst); /// /// Conncurrent reader /// /// /// /// /// void ConcurrentReader(ref Key key, ref Input input, ref Value value, ref Output dst); /// /// Single writer /// /// /// /// void SingleWriter(ref Key key, ref Value src, ref Value dst); /// /// Concurrent writer /// /// /// /// bool ConcurrentWriter(ref Key key, ref Value src, ref Value dst); } }