koi_net.components.effector

Classes

BundleSource(*values)

Effector(log, cache, resolver, kobj_queue)

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: object

Subsystem for dereferencing RIDs.

Extensible for arbitrary RID types by creating dereference handlers.

Parameters:
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 dereference

  • refresh_cache (bool) – skips cache read when True

  • use_network (bool) – enables fetching from other nodes when True

  • handle_result (bool) – sends resulting bundle to kobj queue when True

  • write_through (bool) – waits for kobj queue to empty when True

Return type:

Bundle | None

deref_handlers: list[DerefHandler]
kobj_queue: KobjQueue
log: Logger
register_handler(handler)[source]
Parameters:

handler (DerefHandler)

resolver: NetworkResolver