Random-access byte source, the input abstraction every archive reader consumes. Never a file path, never a raw stream.
Contract
- pread semantics: implementations MUST support concurrent positional reads: overlapping in-flight read calls must not interfere with each other. There is no shared cursor.
- read returns exactly
lengthbytes. A range that extends past length throws UnexpectedEofException (typed, so corrupt headers pointing past EOF surface as archive errors, never RangeError). Negativeoffsetorlengthis a programmer error (ArgumentError). - The returned buffer MAY be a view over shared memory; callers must not mutate it, and implementations must not reuse it for later reads.
- After close, read throws ArchiveClosedException. close is idempotent.
- Nothing may assume the source is local or cheap to read: an HTTP-range implementation must be possible without core changes. Callers should read in as few, as large, requests as practical.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- length → int
-
Total length of the source in bytes.
no setter
- name → String?
-
Optional display name for the source (a file path, a browser File
name), used by formats that derive entry names from the container
(e.g. a bare
.gzwith no FNAME field). Null when the source has no meaningful name.no setter - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
close(
) → Future< void> - Releases any resources held by the source. Idempotent.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
read(
int offset, int length) → Future< Uint8List> -
Reads exactly
lengthbytes starting at byteoffset. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited