database_entry() = #{prefix => ip_address_prefix(), binary() => term()}
database_error() = database_unknown | database_not_loaded
database_info() = #{metadata => database_metadata(), source => database_source(), version => database_version()}
database_metadata() = #{binary() => term()}
database_source() = {cache, string()} | {remote, string()} | {filesystem, string()}
database_version() = calendar:datetime()
ip_address_prefix() = {inet:ip4_address(), 0..32} | {inet:ip6_address(), 0..128}
get_info/1 | Returns the properties of a currently loaded database. |
get_info/2 | Returns a specific property of a currently loaded database. |
get_version/1 | (Deprecated.) Returns the currently loaded database version. |
lookup/2 | Looks-up info on IPv4 and IPv6 addresses. |
start_loader/2 | Like :start_loader/3 but with default options. |
start_loader/3 | Starts a database loader under id DatabaseId with options Opts . |
stop_loader/1 | Stops the database loader under id DatabaseId . |
wait_for_loader/1 | Blocks caller execution until either readiness is achieved or a database load attempt fails. |
wait_for_loader/2 | Like wait_for_loader/1 but it can time-out. |
get_info(DatabaseId) -> {ok, Info} | {error, Error}
Returns the properties of a currently loaded database.
DatabaseId
must be an atom and refer to a database loader.{ok, database_info()}
in case of success{error, database_unknown}
if the database loader for DatabaseId
hasn't been started.{error, database_not_loaded}
if the database hasn't yet been loaded.See also: get_info/2.
get_info(DatabaseId, Property) -> {ok, Value} | {error, Error}
Returns a specific property of a currently loaded database.
DatabaseId
must be an atom and refer to a database loader.Property
must be either metadata
, source
or version
.{ok, Value}
in case of success{error, database_unknown}
if the database loader for DatabaseId
hasn't been started.{error, database_not_loaded}
if the database hasn't yet been loaded.See also: get_info/1.
get_version(DatabaseId) -> {ok, LoadedVersion} | {error, Error}
This function is deprecated:
Please use get_info/2
instead.
DatabaseId
must be an atom and refer to a database loader.{ok, LoadedVersion}
in case of success{error, database_unknown}
if the database loader for DatabaseId
hasn't been started.{error, database_not_loaded}
if the database hasn't yet been loaded.Returns the currently loaded database version.
lookup(DatabaseId, Address) -> {ok, Entry} | {error, Error}
Looks-up info on IPv4 and IPv6 addresses.
DatabaseId
must be an atom and refer to a database loader.Address
must be either an inet:ip_address()
tuple, or a string/binary
containing a valid representation of the address.{ok, Entry}
in case of success{error, not_found}
if no data was found for this Address
.{error, invalid_address}
if Address
is not either a inet:ip_address()
tuple or a valid textual representation of an IP address.{error, database_unknown}
if the database loader for DatabaseId
hasn't been started.{error, database_not_loaded}
if the database hasn't yet been loaded.{error, ipv4_database}
if Address
represents an IPv6 address and the database
only supports IPv4 addresses.start_loader(DatabaseId, DatabaseURL) -> ok | {error, Error}
Like :start_loader/3
but with default options
DatabaseId
must be an atom.DatabaseURL
must be either a string or a binary containing a HTTP(S) or filesystem URL.ok
in case of success.{error, invalid_url}
if the URL is invalid.{error, already_started}
if the loader under DatabaseId
has already been started.See also: start_loader/3, wait_for_loader/1, wait_for_loader/2.
start_loader(DatabaseId, DatabaseURL, Opts) -> ok | {error, Error}
Starts a database loader under id DatabaseId
with options Opts
.
DatabaseId
must be an atom.DatabaseURL
must be either a string or a binary containing a HTTP(S) or filesystem URL.Opts
must be either a list of locus_http_loader:opt()
or a list of locus_filesystem_loader:opt()
valuesok
in case of success.{error, invalid_url}
if the URL is invalid.{error, already_started}
if the loader under DatabaseId
has already been started.See also: start_loader/2, wait_for_loader/1, wait_for_loader/2.
stop_loader(DatabaseId) -> ok | {error, Error}
Stops the database loader under id DatabaseId
.
DatabaseId
must be an atom and refer to a database loader.ok
in case of success, {error, not_found}
otherwise.
wait_for_loader(DatabaseId) -> {ok, LoadedVersion} | {error, Error}
Blocks caller execution until either readiness is achieved or a database load attempt fails.
DatabaseId
must be an atom and refer to a database loader.{ok, LoadedVersion}
when the database is ready to use.{error, database_unknown}
if the database loader for DatabaseId
hasn't been started.{error, {loading, term()}}
if loading the database failed for some reason.See also: start_loader/2, wait_for_loader/2.
wait_for_loader(DatabaseId, Timeout) -> {ok, LoadedVersion} | {error, Error}
Like wait_for_loader/1
but it can time-out.
DatabaseId
must be an atom and refer to a database loader.Timeout
must be either a non-negative integer (milliseconds) or infinity
.{ok, LoadedVersion}
when the database is ready to use.{error, database_unknown}
if the database loader for DatabaseId
hasn't been started.{error, timeout}
if we've given up on waiting.{error, {loading, term()}}
if loading the database failed for some reason.See also: start_loader/2, wait_for_loader/1.
Generated by EDoc, May 4 2018, 21:11:20.