using System;
namespace GeoVLog.Core.Hdf5;
///
/// Options that control **automatic periodic flushing** of the current
/// .h5 file to disk. You may tune *either* of the thresholds,
/// or disable auto-flush completely. The worker treats the first
/// threshold reached as the flush trigger.
///
public sealed class H5LogFlushOptions
{
///
/// Enable / disable auto-flush.
/// Default = (recommended: protects data
/// if the PC loses power while still inflight).
///
public bool EnableAutoFlush { get; init; } = true;
///
/// Flush after this many records have been
/// received since the previous flush.
/// Set to 0 to disable the count-based trigger.
///
public int FlushCount { get; init; } = 0;
///
/// Flush if this much time has elapsed since the previous flush.
/// A value of disables the time-based trigger.
public TimeSpan FlushInterval { get; init; } = TimeSpan.FromSeconds(60); // ← 60 s default
}