ExMCP.Content.ValidatorRegistry (ex_mcp v0.10.0)

View Source

GenServer-based validator registry that replaces Process dictionary usage.

This module provides a thread-safe registry for content validators that eliminates the concurrency issues with Process.put/2.

Summary

Functions

Returns a specification to start this module under a supervisor.

Gets a registered validator function.

Lists all registered validators.

Starts the validator registry.

Checks if a validator is registered.

Types

validator_function()

@type validator_function() :: (any() -> :ok | {:error, String.t()})

validator_name()

@type validator_name() :: atom()

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

get_validator(registry \\ __MODULE__, name)

@spec get_validator(GenServer.server(), validator_name()) ::
  {:ok, validator_function()} | {:error, :not_found}

Gets a registered validator function.

list_validators(registry \\ __MODULE__)

@spec list_validators(GenServer.server()) :: [validator_name()]

Lists all registered validators.

register_validator(registry \\ __MODULE__, name, validator_fun)

@spec register_validator(GenServer.server(), validator_name(), validator_function()) ::
  :ok

Registers a validator function.

start_link(opts \\ [])

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

Starts the validator registry.

unregister_validator(registry \\ __MODULE__, name)

@spec unregister_validator(GenServer.server(), validator_name()) :: :ok

Unregisters a validator.

validator_registered?(registry \\ __MODULE__, name)

@spec validator_registered?(GenServer.server(), validator_name()) :: boolean()

Checks if a validator is registered.