core.host¶
- class immp.core.host.HostGetter(cls)¶
Bases:
object
Filter property used to return a subset of objects by type.
- class immp.core.host.Host¶
Bases:
object
Main class responsible for starting, stopping, and interacting with plugs.
To run as the main coroutine for an application, use
run()
in conjunction withAbstractEventLoop.run_until_complete()
. To stop a running host in an async context, awaitquit()
.For finer control, you can call
open()
,process()
andclose()
explicitly.- resources¶
Collection of all registered resource hooks, keyed by class.
- Type:
(class, .ResourceHook) dict
- priority¶
Mapping from hook names to their configured ordering. Unordered (lowest priority) hooks are not present.
- started¶
Timestamp when the host instance began listening for messages.
- Type:
- ordered_hooks()¶
Sort all registered hooks by priority.
- Returns:
Hooks grouped by their relative order – one set for each ascending priority, followed by unordered hooks at the end.
- Return type:
(.Hook set) list
- add_plug(plug, enabled=True)¶
Register a plug to the host.
If the host is already running, use
join_plug()
instead, which will start the plug and begin processing messages straight away.
- remove_plug(name)¶
Unregister an existing plug.
Warning
This will not notify any hooks with a reference to this plug, nor will it attempt to remove it from their state.
- Parameters:
name (str) – Name of a previously registered plug instance to remove.
- Returns:
Removed plug instance.
- Return type:
.Plug
- add_channel(name, channel)¶
Register a channel to the host. The channel’s plug must be registered first.
- Parameters:
name (str) – Unique identifier for this channel to be referenced by plugs and hooks.
channel (.Channel) – Existing channel instance to add.
- remove_channel(name)¶
Unregister an existing channel.
- Parameters:
name (str) – Name of a previously registered channel instance to remove.
- add_group(group)¶
Register a group to the host.
- Parameters:
group (.Group) – Existing group instance to add.
- Returns:
Name used to reference this group.
- Return type:
- remove_group(name)¶
Unregister an existing group.
Warning
This will not notify any hooks with a reference to this group, nor will it attempt to remove it from their state.
- Parameters:
name (str) – Name of a previously registered group instance to remove.
- Returns:
Removed group instance.
- Return type:
.Group
- add_hook(hook, enabled=True, priority=None)¶
Register a hook to the host.
- Parameters:
hook (.Hook) – Existing hook instance to add.
enabled (bool) –
True
to connect this plug at startup.priority (int) – Optional ordering constraint, applied to send and receive events. Hooks registered with a priority will be processed in ascending priority order, followed by those without prioritisation. Where multiple hooks share a priority value, events may be processed in parallel (e.g. on-receive is dispatched to all hooks simultaneously).
- Returns:
Name used to reference this hook.
- Return type:
- prioritise_hook(name, priority)¶
Re-prioritise an existing hook.
- Parameters:
name (str) – Name of a previously registered hook instance to prioritise.
priority (int) – Optional ordering constraint – see
add_hook()
.
- remove_hook(name)¶
Unregister an existing hook.
Warning
This will not notify any dependent hooks with a reference to this hook, nor will it attempt to remove it from their state.
- Parameters:
name (str) – Name of a previously registered hook instance to remove.
- Returns:
Removed hook instance.
- Return type:
.Hook
- loaded()¶
Trigger the on-load event for all plugs and hooks.
- async open()¶
Connect all open plugs and start all hooks.
- async close()¶
Disconnect all open plugs and stop all hooks.
- async channel_migrate(old, new)¶
Issue a migration call to all hooks.
- Parameters:
old (.Channel) – Existing channel with local data.
new (.Channel) – Target replacement channel to migrate data to.
- Returns:
Names of hooks that migrated any data for the requested channel.
- Return type:
str list
- config_change(source)¶
Event handler called from a configurable when its config changes, dispatched to all hooks.
- Parameters:
source (.Configurable) – Source plug or hook that triggered the event.
- async process()¶
Retrieve messages from plugs, and distribute them to hooks.