Namespace FulcrumFS
Classes
DanglingAliasException
The exception that is thrown when a variant alias is encountered whose source data file is missing from the repository. This always indicates repository corruption: in normal operation every code path that could remove the source (deletion, retirement, rollback) is coordinated against the aliases pointing at it so this state is unreachable. See the CorruptionDetected event for programmatic discovery of these (and other) corruption conditions across all fetch and add operations.
DanglingAliasInfo
Describes a variant alias in a file group whose source data file is missing. Returned by GetGroupAsync(FileId) via DanglingAliases to surface alias corruption without polluting VariantFiles. Per-ID fetches of a dangling alias throw DanglingAliasException.
FileFormat
Represents a file format that can be used to validate that a file's content matches its declared extension.
FileFormatValidationOptions
Represents configuration options for a FileFormatValidationProcessor.
FileFormatValidationProcessor
A FileProcessor that validates a file's content against its declared extension using a configured set of FileFormat instances. The file content is not modified; the processor either passes the file through unchanged or throws a FileProcessingException if the content does not match the expected file format.
FileId
Represents a validated file identifier.
FileProcessingContext
Represents the context for processing a file, providing access to the source file or stream and methods to create new work files or directories.
FileProcessingException
The exception that is thrown when an error occurs during file processing.
FileProcessingPipeline
Represents a pipeline for processing files using a series of FileProcessor instances.
FileProcessingPipelineSelector
Selects the appropriate FileProcessingPipeline based on the source file extension by routing across a set of registered pipelines.
FileProcessingResult
Represents the result of processing a file in a FileProcessingPipeline.
FileProcessingVariant
Represents an auto-variant that is produced from the output of a FileProcessingPipeline.
FileProcessor
Represents a base class for processing files in a file repository.
FileRepo
Represents a transactional file repository.
FileRepoCleaner
Cleans up a file repository: enumerates marker files in the repository's cleanup directory, removes files whose delete markers have aged past the supplied delete delay, and resolves indeterminate files via an optional caller-supplied callback.
FileRepoCleaningOptions
Represents configuration options for a FileRepoCleaner.
FileRepoOptions
Represents configuration options for a file repository.
FileRepoPaths
Contains path constants used by file repositories.
FileRepoTransaction
Represents a transaction for a file repository, allowing changes to be committed or rolled back.
FileSourceUnchangedException
Represents an exception that can be thrown when file processing does not result in any changes to the source file.
RepoCorruptedException
The exception that is thrown when an operation cannot proceed because the repository is in a corrupted state that requires external intervention. Examples include multiple data files mapping to the same variant slot, or a rebase that cannot be resumed because required files are missing. See the CorruptionDetected event for programmatic discovery of these (and other) corruption conditions; the Kind on the event carries the specific kind that triggered this throw.
RepoCorruptionInfo
Describes a repository corruption condition surfaced via the CorruptionDetected event.
RepoFileGroupInfo
Represents information about a file in a FileRepo together with all of its variants.
RepoFileInfo
Represents information about a file stored in a FileRepo, including its identity and a recommended way to open it.
RepoFileNotFoundException
The exception that is thrown when a file in a repository is not found.
RepoTransactionCompletionFailureInfo
Describes a transaction-completion failure surfaced via the TransactionCompletionFailed event. The failure occurred during the final commit or rollback step (not during the in-flight transaction body) and does not affect the integrity of the underlying data; affected files remain accessible in an indeterminate state pending repair by the next cleaner pass.
RepoVariantPendingCleanupException
The exception that is thrown when an add operation targets a variant ID that still has pending retirement state on disk from a prior DeleteVariantsAsync(FileId, params ReadOnlySpan<string>) call that has not yet completed physical cleanup.
Structs
FileFormatValidationResult
Represents the result of validating a file's content against a FileFormat.
Interfaces
IFileProcessingPipelineProvider
Provides a statically-shaped FileProcessingPipeline whose variant tree can be enumerated ahead of execution. Both FileProcessor and FileProcessingPipeline implement this interface.
IFileProcessingPipelineSelector
Selects a FileProcessingPipeline to use for processing a file based on its source extension. This is the interface accepted by every public add API on FileRepoTransaction and FileRepo.
IFileRepoCleaner
Provides cleanup operations for a file repository: removing expired delete markers, resolving indeterminate files, and physically deleting files whose delete markers have aged past the supplied delete delay.
Enums
DeleteMode
Specifies when file deletions issued through the repository take physical effect.
FileIdMode
Specifies the algorithm used to generate file IDs in a file repository.
IndeterminateResolution
Specifies the resolution action to take for files with indeterminate status in a repository.
RepoCorruptionKind
Identifies the kind of repository corruption surfaced via the CorruptionDetected event.
RepoLoggingMode
Represents the logging mode used to write information and errors.
RepoTransactionCompletionOperation
Identifies which transaction-completion step (commit or rollback) was in progress when the failure surfaced via the TransactionCompletionFailed event occurred.
SourceBufferingMode
Specifies the mode for buffering source streams to temporary repository work files. This setting controls the trade-off between throughput, memory usage, and security resilience against slow sources.
UnicodeEncodings
Specifies the Unicode encodings accepted by TextUnicode(UnicodeEncodings, params ReadOnlySpan<string>).
Delegates
RepoCorruptionHandler
Represents a handler invoked when repository corruption is detected. Handlers receive a RepoCorruptionInfo describing the condition and may perform logging, alerting, or automated repair. The handler fires every time corruption is encountered (no per-process debouncing); handlers can debounce or log as appropriate. Handler exceptions are not caught and will propagate out of the operation that detected the corruption.
RepoTransactionCompletionFailedHandler
Represents a handler invoked when a transaction-completion step (commit or rollback) fails. Handlers receive a RepoTransactionCompletionFailureInfo describing the failed operation and the underlying exception, and may perform logging or alerting. The event fires every time a completion failure occurs; the failure does not affect the integrity of the underlying data and can typically be ignored outside of diagnostics. Handler exceptions are not caught and will propagate out of the operation that detected the failure.