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.

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 bound action, or fetching from other nodes in the newtork.

Return type:

Bundle | None

Parameters:
  • rid (RID)

  • refresh_cache (bool)

  • use_network (bool)

  • handle_result (bool)

  • write_through (bool)

Args:

rid: RID to dereference refresh_cache: skips cache read when True use_network: enables fetching from other nodes when True handle_result: sends resulting bundle to kobj queue when True write_through: waits for kobj queue to empty when True

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

handler (DerefHandler)

resolver: NetworkResolver