ex_api v1.0.0-rc.1 ExApi View Source
This module manages all apis and theirs implementations.
Link to this section Summary
Functions
Lists all registered apis
Checks given api
Checks implementation with api
Checks implementation
Fetches api
Fetches default implementation for specified api
Fetches implementation
Fetches implementation for specified group and api
Fetches all implementations for specified api
Callback for: GenServer.init/1
Registers api asynchronously
Registers api implementation asynchronously
Changes default api implementation asynchronously
Changes default api implementation asynchronously
Starts ExApi GenServer server
Unregisters api asynchronously
Unregisters api implementation asynchronously
Link to this section Functions
Lists all registered apis.
check_api(ExApi.Api.t) :: {:ok, ExApi.Api.t} | {:error, ExApi.Error.ApiMismatchError.t} | {:error, ExApi.Error.ApiNotRegisteredError.t}
check_api(module) :: {:ok, ExApi.Api.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotApiError.t}
Checks given api
check_api_impl(ExApi.Api.t, ExApi.Implementation.t) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiMismatchError.t} | {:error, ExApi.Error.ApiNotRegisteredError.t} | {:error, ExApi.Error.ImplementationMismatchError.t} | {:error, ExApi.Error.ImplementationNotRegisteredError.t} | {:error, ExApi.Error.WrongApiError.t}
check_api_impl(ExApi.Api.t, {group :: atom, id :: atom}) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiMismatchError.t} | {:error, ExApi.Error.ApiNotRegisteredError.t} | {:error, ExApi.Error.ImplementationNotFoundError.t}
check_api_impl(api_module :: module, ExApi.Implementation.t) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ImplementationMismatchError.t} | {:error, ExApi.Error.ImplementationNotRegisteredError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotApiError.t}
check_api_impl(api_module :: module, {group :: atom, id :: atom}) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ImplementationNotFoundError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotApiError.t}
Checks implementation with api.
check_impl(ExApi.Implementation.t) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ImplementationNotFoundError.t}
check_impl(module) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ImplementationNotFoundError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotImplementationError.t}
Checks implementation.
get(ExApi.Api.t) :: {:ok, ExApi.Api.t} | {:error, ExApi.Error.ApiMismatchError.t} | {:error, ExApi.Error.ApiNotRegisteredError.t}
get(module) :: {:ok, ExApi.Api.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotApiError.t}
Fetches api.
get_default_impl(ExApi.Api.t) :: {:ok, ExApi.Implementation.t | nil} | {:error, ExApi.Error.ApiMismatchError.t} | {:error, ExApi.Error.ApiNotRegisteredError.t}
get_default_impl(module) :: {:ok, ExApi.Implementation.t | nil} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotApiError.t}
Fetches default implementation for specified api.
get_impl(ExApi.Implementation.t) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ImplementationNotFoundError.t}
get_impl(module) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ImplementationNotFoundError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotImplementationError.t}
Fetches implementation.
get_impl(ExApi.Api.t, ExApi.Implementation.t) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiMismatchError.t} | {:error, ExApi.Error.ApiNotRegisteredError.t} | {:error, ExApi.Error.ImplementationMismatchError.t} | {:error, ExApi.Error.ImplementationNotRegisteredError.t} | {:error, ExApi.Error.WrongApiError.t}
get_impl(ExApi.Api.t, {group :: atom, id :: atom}) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiMismatchError.t} | {:error, ExApi.Error.ApiNotRegisteredError.t} | {:error, ExApi.Error.ImplementationNotFoundError.t}
get_impl(api_module :: module, ExApi.Implementation.t) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ImplementationMismatchError.t} | {:error, ExApi.Error.ImplementationNotRegisteredError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotApiError.t}
get_impl(api_module :: module, {group :: atom, id :: atom}) :: {:ok, ExApi.Implementation.t} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ImplementationNotFoundError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotApiError.t}
Fetches implementation for specified group and api.
get_impls(ExApi.Api.t) :: {:ok, [ExApi.Implementation.t]} | {:error, ExApi.Error.ApiMismatchError.t} | {:error, ExApi.Error.ApiNotRegisteredError.t}
get_impls(module) :: {:ok, [ExApi.Implementation.t]} | {:error, ExApi.Error.ApiNotFoundError.t} | {:error, ExApi.Error.ModuleNotLoadedError.t} | {:error, ExApi.Error.NotApiError.t}
Fetches all implementations for specified api.
init(args :: term) :: {:ok, state} | {:ok, state, timeout | :hibernate} | :ignore | {:stop, reason :: any} when state: any
Callback for: GenServer.init/1
.
register_api(ExApi.Api.t | module) :: :ok
Registers api asynchronously.
register_impl(ExApi.Implementation.t | module) :: :ok
Registers api implementation asynchronously.
set_default_impl(ExApi.Implementation.t | module) :: :ok
Changes default api implementation asynchronously.
set_default_impl(ExApi.Api.t | module, ExApi.Implementation.t | {atom, atom}) :: :ok
Changes default api implementation asynchronously.
Starts ExApi GenServer server.
unregister_api(ExApi.Api.t | module) :: :ok
Unregisters api asynchronously.
unregister_impl(ExApi.Implementation.t | module) :: :ok
Unregisters api implementation asynchronously.