View Source locus_loader (locus v2.3.7)
Link to this section Summary
Link to this section Types
Specs
blob_format() :: tgz | tarball | gzip | gzipped_mmdb | mmdb | unknown.
Specs
cacher_msg() :: locus_filesystem_store:msg().
Specs
error_retry_behaviour() :: {backoff, milliseconds_interval()} | {exponential_backoff, exponential_backoff_params()}.
Specs
event() :: locus_maxmind_download:event() | locus_http_download:event() | locus_filesystem_load:event() | locus_custom_fetcher:event() | event_cache_attempt_finished().
Specs
event_cache_attempt_finished() :: {cache_attempt_finished, locus_filesystem_store:path(), ok} | {cache_attempt_finished, locus_filesystem_store:path(), {error, term()}}.
Specs
exponential_backoff_params() :: #{min_interval := milliseconds_interval(), max_interval := milliseconds_interval(), growth_base := milliseconds_interval(), growth_exponent := number()}.
Specs
fetcher_msg() :: locus_http_download:msg() | locus_filesystem_load:msg() | locus_custom_fetcher:msg().
Specs
fetcher_opt() :: locus_maxmind_download:opt() | locus_http_download:opt().
Specs
fetcher_success() :: locus_http_download:success() | locus_filesystem_load:success() | locus_custom_fetcher:success().
Specs
loader_opt() :: {update_period, milliseconds_interval()} | {error_retries, error_retry_behaviour()} | no_cache | {database_cache_file, file:filename()}.
Specs
maxmind_origin_params() :: #{license_key := unicode:unicode_binary(), date => calendar:date()}.
Specs
milliseconds_interval() :: pos_integer().
Specs
msg() :: {event, event()} | {load_success, source(), calendar:datetime(), locus_mmdb:database()} | {load_failure, source(), Reason :: term()}.
Specs
opt() :: loader_opt() | fetcher_opt().
Specs
origin() :: {maxmind, atom()} | {http, locus_http_download:url()} | {filesystem, locus_filesystem_load:path()} | locus:custom_fetcher().
Specs
provider_source() :: {maxmind, atom()}.
Specs
settings() :: #settings{}.
Specs
source() :: {remote, provider_source()} | {remote, locus_http_download:url()} | locus_filesystem_load:source() | locus_custom_fetcher:source().
Specs
state() :: #state{}.
Specs
uniformly_distributed_update_period() :: #{min := pos_integer(), max := pos_integer()}.
Specs
update_period() :: pos_integer() | uniformly_distributed_update_period().
Link to this section Functions
Specs
Specs
Specs
Specs
Specs
init([pid() | atom() | origin() | [loader_opt()] | [fetcher_opt()], ...]) -> {ok, state()}.
Specs
start_link(atom(), origin(), [loader_opt()], [fetcher_opt()]) -> {ok, pid()}.
Specs
terminate(term(), state()) -> ok.
Specs
valid_blob_formats() -> [tgz | tarball | gzip | gzipped_mmdb | mmdb | unknown, ...].
Specs
validate_opts(origin(), proplists:proplist()) -> {ok, {[opt()], [fetcher_opt()], proplists:proplist()}} | {error, BadOpt :: term()}.