Raxol.Core.Runtime.Plugins.StateManager.Behaviour behaviour (Raxol v0.3.0)

View Source

Defines the behaviour for plugin state management.

This behaviour is responsible for:

  • Managing plugin state transitions
  • Updating plugin state maps
  • Retrieving plugin state information
  • Handling plugin state lifecycle

Summary

Callbacks

get_plugin_config(plugin_id, state_maps)

@callback get_plugin_config(
  plugin_id :: String.t(),
  state_maps :: map()
) :: map() | nil

Gets a plugin's configuration.

get_plugin_metadata(plugin_id, state_maps)

@callback get_plugin_metadata(
  plugin_id :: String.t(),
  state_maps :: map()
) :: map() | nil

Gets a plugin's metadata.

get_plugin_module(plugin_id, state_maps)

@callback get_plugin_module(
  plugin_id :: String.t(),
  state_maps :: map()
) :: module() | nil

Gets a plugin's module.

get_plugin_state(plugin_id, state_maps)

@callback get_plugin_state(
  plugin_id :: String.t(),
  state_maps :: map()
) :: map() | nil

Gets a plugin's state.

remove_plugin(plugin_id, state_maps)

@callback remove_plugin(
  plugin_id :: String.t(),
  state_maps :: map()
) :: map()

Removes a plugin from the state maps.

update_plugin_state(plugin_id, new_state, state_maps)

@callback update_plugin_state(
  plugin_id :: String.t(),
  new_state :: map(),
  state_maps :: map()
) :: map()

Updates a plugin's state.

update_state_maps(plugin_id, plugin_module, plugin_metadata, plugin_state, config, state_maps)

@callback update_state_maps(
  plugin_id :: String.t(),
  plugin_module :: module(),
  plugin_metadata :: map(),
  plugin_state :: map(),
  config :: map(),
  state_maps :: map()
) :: map()

Updates the plugin state maps with a new plugin.