CliSubprocessCore.ProviderRegistry (CliSubprocessCore v0.2.0)

Copy Markdown View Source

Registry of provider profile modules available to the core runtime.

Summary

Functions

Returns the built-in provider profile modules loaded at registry boot.

Returns a specification to start this module under a supervisor.

Fetches a provider profile module by id.

Lists the registered provider ids.

Returns the registered provider profile mapping.

Registers a provider profile module in the registry.

Registers multiple provider profile modules in order.

Returns true when a provider id is registered.

Starts a provider registry.

Types

t()

@type t() :: %CliSubprocessCore.ProviderRegistry{
  built_in_modules: [module()],
  profiles: %{optional(atom()) => module()}
}

Functions

built_in_modules(registry \\ __MODULE__)

@spec built_in_modules(GenServer.server()) :: [module()]

Returns the built-in provider profile modules loaded at registry boot.

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

fetch(id, registry \\ __MODULE__)

@spec fetch(atom(), GenServer.server()) :: {:ok, module()} | :error

Fetches a provider profile module by id.

ids(registry \\ __MODULE__)

@spec ids(GenServer.server()) :: [atom()]

Lists the registered provider ids.

list(registry \\ __MODULE__)

@spec list(GenServer.server()) :: %{optional(atom()) => module()}

Returns the registered provider profile mapping.

register(profile_module, registry \\ __MODULE__)

@spec register(module(), GenServer.server()) ::
  :ok
  | {:error, {:module_not_loaded, module()}}
  | {:error, {:missing_callbacks, module(), [{atom(), non_neg_integer()}]}}
  | {:error, {:behaviour_not_declared, module()}}
  | {:error, {:duplicate_profile_id, atom(), module(), module()}}

Registers a provider profile module in the registry.

register_many(profile_modules, registry \\ __MODULE__)

@spec register_many([module()], GenServer.server()) ::
  :ok
  | {:error, {:module_not_loaded, module()}}
  | {:error, {:missing_callbacks, module(), [{atom(), non_neg_integer()}]}}
  | {:error, {:behaviour_not_declared, module()}}
  | {:error, {:duplicate_profile_id, atom(), module(), module()}}

Registers multiple provider profile modules in order.

registered?(id, registry \\ __MODULE__)

@spec registered?(atom(), GenServer.server()) :: boolean()

Returns true when a provider id is registered.

start_link(opts \\ [])

@spec start_link(keyword()) :: GenServer.on_start()

Starts a provider registry.