View Source locus_custom_fetcher behaviour (locus v2.3.7)
Link to this section Summary
Link to this section Types
Specs
description() :: #{database_is_stored_remotely := boolean(), database_is_fetched_from := term()}.
Specs
event() :: event_load_attempt_started() | event_load_attempt_dismissed().
Specs
event_load_attempt_dismissed() :: {load_attempt_dismissed, source()}.
Specs
event_load_attempt_started() :: {load_attempt_started, source()}.
Specs
Specs
source() :: {local | remote, {custom, term()}}.
Specs
state() :: #state{}.
Specs
success() :: #{format := locus_loader:blob_format(), content := binary(), metadata := successful_fetch_metadata()}.
Specs
successful_fetch_metadata() :: #{fetched_from := term(), modified_on := calendar:datetime() | unknown}.
Link to this section Callbacks
Specs
conditionally_fetch(Args, {depending_on, PreviousFetchMetadata}) -> {fetched, Success} | dismissed | {error, Reason} when Args :: term(), PreviousFetchMetadata :: successful_fetch_metadata(), Success :: success(), Reason :: term().
Specs
description(Args) -> description() when Args :: term().
Specs
fetch(Args) -> {fetched, Success} | {error, Reason} when Args :: term(), Success :: success(), Reason :: term().
Link to this section Functions
Specs
Specs
description(module(), term()) -> description().
Specs
Specs
Specs
Specs
Specs
init([InitArg, ...]) -> {ok, state(), {continue, fetch}} when InitArg :: OwnerPid | Source | Module | Args | PreviousFetchMetadata, OwnerPid :: pid(), Source :: source(), Module :: module(), Args :: term(), PreviousFetchMetadata :: successful_fetch_metadata() | undefined.
Specs
source(module(), term()) -> source().
Specs
start_link(source(), module(), term(), successful_fetch_metadata() | undefined) -> {ok, pid()}.
Specs
terminate(term(), state()) -> ok.