koi_net.components.effector
Classes
|
|
|
Subsystem for dereferencing RIDs. |
- class koi_net.components.effector.BundleSource(*values)[source]
Bases:
StrEnum- ACTION = 'ACTION'
- CACHE = 'CACHE'
- class koi_net.components.effector.Effector(log, cache, resolver, kobj_queue)[source]
Bases:
objectSubsystem for dereferencing RIDs.
Extensible for arbitrary RID types by creating dereference handlers.
- Parameters:
log (Logger)
cache (Cache)
resolver (NetworkResolver)
kobj_queue (KobjQueue)
- cache: Cache
- deref(rid, refresh_cache=False, use_network=False, handle_result=True, write_through=False)[source]
Dereferences an RID.
Attempts to dereference an RID by (in order) reading the cache, calling a dereference handler, or fetching from other nodes in the newtork.
- Parameters:
rid (
RID) – RID to dereferencerefresh_cache (
bool) – skips cache read whenTrueuse_network (
bool) – enables fetching from other nodes whenTruehandle_result (
bool) – sends resulting bundle to kobj queue whenTruewrite_through (
bool) – waits for kobj queue to empty whenTrue
- Return type:
Bundle|None
- deref_handlers: list[DerefHandler]
- log: Logger
- register_handler(handler)[source]
- Parameters:
handler (DerefHandler)
- resolver: NetworkResolver