The in-memory LongTermStore, for tests and single-process applications: one lock for the store. search is a case-insensitive substring match over keys and string values.
Attributes
- Companion
- object
- Graph
-
- Supertypes
Members list
Value members
Concrete methods
How many applied keys the store holds: C4's guard forgets each once its outcome is recorded.
How many applied keys the store holds: C4's guard forgets each once its outcome is recorded.
Attributes
Removes key from the applied-keys table, fenced by token as described above: Left if token is older than the newest token seen for key.scope; Right(()) if the key is not there.
Removes key from the applied-keys table, fenced by token as described above: Left if token is older than the newest token seen for key.scope; Right(()) if the key is not there.
Attributes
The entries of ns whose key starts with prefix, in key order, at most limit.
The entries of ns whose key starts with prefix, in key order, at most limit.
Attributes
In one transaction, serialisable within ns, fenced by token (C4's AppliedKeys): a token older than the newest seen for effect.scope is refused with a Left and changes nothing; otherwise it becomes the newest, and then: if effect was applied, its recorded outcome and no write; otherwise change, decided against the namespace as it is now, which may refuse (Left: nothing written or recorded), then the namespace's and item's bounds, then the write and (effect, outcome) recorded together. An over-limit change is a BackendRefused. The newest token per scope is kept as long as the store keeps that thread's data: durably, in a real store.
In one transaction, serialisable within ns, fenced by token (C4's AppliedKeys): a token older than the newest seen for effect.scope is refused with a Left and changes nothing; otherwise it becomes the newest, and then: if effect was applied, its recorded outcome and no write; otherwise change, decided against the namespace as it is now, which may refuse (Left: nothing written or recorded), then the namespace's and item's bounds, then the write and (effect, outcome) recorded together. An over-limit change is a BackendRefused. The newest token per scope is kept as long as the store keeps that thread's data: durably, in a real store.
The outcome returned is the recorded one, decoded, so a first run and its replay return the same value. A's codec must be a pure function of its value: C4's guard encodes the outcome again for its journal, and a codec that answered differently would record two things.
Attributes
The entries of ns matching query, at most limit; each store documents how it matches.
The entries of ns matching query, at most limit; each store documents how it matches.
Attributes
Inherited methods
Deletes key, guarded under store.delete: true when it existed.
Deletes key, guarded under store.delete: true when it existed.
Attributes
- Inherited from:
- LongTermStore
Writes value at key, guarded under store.put: true when the key was new.
Writes value at key, guarded under store.put: true when the key was new.
Attributes
- Inherited from:
- LongTermStore
Concrete fields
Inherited fields
C4's class for this target.