Table of Contents

Class IngestionSource

Namespace
Qavren.Edge.Ingestion
Assembly
Qavren.Edge.Ingestion.dll

Where a run's documents come from. The abstract shape is two members; the five factories below cover the filesystem shape and the mobile shape (spec 11, 11.3).

public abstract class IngestionSource
Inheritance
IngestionSource
Inherited Members

Properties

Id

Stable, non-empty. Every state row and every chunk carries it.

Methods

EnumerateAsync(CancellationToken)

Streams the source's items. Enumeration order is the run's document order.

Files(IEnumerable<string>, string)

Filesystem paths only, same caveat as Folder(string, string, bool, string?).

Folder(string, string, bool, string?)

FILESYSTEM PATHS ONLY. Ordinal-sorted; document ids are forward-slashed paths relative to the root. This is the desktop and app-private-storage shape — see spec 11.3 for mobile.

Items(IEnumerable<DocumentSourceItem>, string)

THE MOBILE SHAPE. Opaque handles: a SAF content:// URI, a security-scoped bookmark, a MAUI FileResult, a blob in app storage. SP3 never interprets the handle; the consumer's OpenAsync does. See spec 11.3.

Items(Func<CancellationToken, IAsyncEnumerable<DocumentSourceItem>>, string)

Streaming form, for a picker that pages or a provider that enumerates lazily.

Single(string, string, Func<CancellationToken, ValueTask<Stream>>, string, long?, DateTimeOffset?)

One document, opened by a consumer-supplied delegate.