template<class T, class BufferContext, class ErrorType>
requires(BufferContext &context, const BufferContext &constContext,
size_t blockSize) {
typename T::value_type;
typename T::value_type>;
{ T::fileIndex } -> std::convertible_to<size_t>;
{ T::num } -> std::same_as<const typename BufferContext::StatEntries &>;
{ T::error } -> std::convertible_to<ErrorType>;
{ T::chunkSize } -> std::convertible_to<size_t>;
{ T::removeExistingBeforeWrite } -> std::convertible_to<bool>;
{ T::openWriteMode } -> std::convertible_to<const char *>;
{
T::getBuffer(context)
} -> std::same_as<InfoBufferType<T, BufferContext> &>;
{
T::getBuffer(constContext)
} -> std::same_as<const InfoBufferType<T, BufferContext> &>;
T::ensureReverseReadable(context, blockSize);
{
T::reverseSeekOffset(constContext, blockSize)
} -> std::convertible_to<long>;
T::updateBufferStatsForward(context, blockSize);
T::updateBufferStatsReverse(context, blockSize);
T::updateBufferPositionForward(context);
T::updateBufferPositionReverse(context, blockSize);
T::prepareForwardPosition(context, blockSize);
}
Concept describing the primitive buffer/file interface used by tape I/O code.
Definition bufferstate.h:27
Concept describing the required interface of a tape Info adapter.
Definition infotype.h:43
Concept describing the required interface of a tape Info adapter.
- Template Parameters
-
| T | The adapter type (e.g. OpInfo<Context, EType>). |
| BufferContext | The context type that stores buffers, counters, file handles, etc. |
| ErrorType | The error enum/type used by higher-level code. |