database_edition() = atom()
database_entry() = locus_mmdb:lookup_success()
database_error() = database_unknown | database_not_loaded
database_info() = #{metadata := database_metadata(), source := database_source(), version := database_version()}
database_metadata() = locus_mmdb:metadata()
database_source() = locus_loader:source()
database_url() = unicode:chardata()
database_version() = calendar:datetime()
ip_address_prefix() = locus_mmdb:ip_address_prefix()
| analyze/1 | Analyzes a loaded database for corruption or incompatibility. |
| 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. |
| loader_child_spec/2 | Like :loader_child_spec/2 but with default options. |
| loader_child_spec/3 | Like :loader_child_spec/3 but with default child id. |
| loader_child_spec/4 | Returns a supervisor child spec for a database loader under id DatabaseId with options Opts. |
| 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. |
| wait_for_loaders/2 | Like wait_for_loader/2 but it can concurrently await status from more than one database. |
analyze(DatabaseId) -> ok | {error, Error}
Analyzes a loaded database for corruption or incompatibility.
DatabaseId must be an atom and refer to a database loader.ok if the database is wholesome{error, {flawed, [Flaw, ...]]}} in case of corruption or incompatibility
(see the definition of locus_mmdb:analysis_flaw/0)
{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.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.
loader_child_spec(DatabaseId, DatabaseEditionOrURL::DatabaseEdition | DatabaseURL) -> ChildSpec | no_return()
Like :loader_child_spec/2 but with default options
DatabaseId must be an atom.DatabaseEdition must be an atom; alternatively, DatabaseURL
must be a string or a binary representing a HTTP(s) URL or local path.supervisor:child_spec().See also: loader_child_spec/1, loader_child_spec/3, start_loader/2, wait_for_loader/1, wait_for_loader/2.
loader_child_spec(DatabaseId, DatabaseEditionOrURL::DatabaseEdition | DatabaseURL, Opts) -> ChildSpec | no_return()
Like :loader_child_spec/3 but with default child id
DatabaseId must be an atom.DatabaseEdition must be an atom; alternatively, DatabaseURL
must be a string or a binary representing a HTTP(s) URL or local path.Opts must be a list of locus_database:opt() valuessupervisor:child_spec().See also: loader_child_spec/3, loader_child_spec/4, start_loader/3, wait_for_loader/1, wait_for_loader/2.
loader_child_spec(ChildId, DatabaseId, DatabaseEdition::DatabaseEdition | DatabaseURL, Opts) -> ChildSpec | no_return()
Returns a supervisor child spec for a database loader under id DatabaseId with options Opts.
DatabaseId must be an atom.DatabaseEdition must be an atom; alternatively, DatabaseURL
must be a string or a binary representing a HTTP(s) URL or local path.Opts must be a list of locus_database:opt() valuessupervisor:child_spec().See also: loader_child_spec/3, start_loader/3, wait_for_loader/1, wait_for_loader/2.
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, DatabaseEditionOrURL::DatabaseEdition | DatabaseURL) -> ok | {error, Error}
Like :start_loader/3 but with default options
DatabaseId must be an atom.DatabaseEdition must be an atom; alternatively, DatabaseURL
must be a string or a binary representing a HTTP(s) URL or local path.ok in case of success.{error, invalid_url} if the source is invalid.{error, already_started} if the loader under DatabaseId has already been started.See also: start_loader/1, start_loader/3, wait_for_loader/1, wait_for_loader/2.
start_loader(DatabaseId, DatabaseEdition::DatabaseEdition | DatabaseURL, Opts) -> ok | {error, Error}
Starts a database loader under id DatabaseId with options Opts.
DatabaseId must be an atom.DatabaseEdition must be an atom; alternatively, DatabaseURL
must be a string or a binary representing a HTTP(s) URL or local path.Opts must be a list of locus_database:opt() valuesok in case of success.{error, invalid_url} if the source is invalid.{error, already_started} if the loader under DatabaseId has already been started.See also: start_loader/1, 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, Reason}
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, {loading, term()}} if loading the database failed for some reason.{error, timeout} if we've given up on waiting.See also: start_loader/2, wait_for_loader/1.
wait_for_loaders(DatabaseIds, Timeout) -> {ok, LoadedVersionPerDatabase} | {error, Reason}
Like wait_for_loader/2 but it can concurrently await status from more than one database.
DatabaseIds must be a list of atoms that refer to database loaders.Timeout must be either a non-negative integer (milliseconds) or infinity.{ok, #{DatabaseId => LoadedVersion}} when all the databases are ready to use.{error, {DatabaseId, database_unknown}} if the database loader for DatabaseId hasn't been started.{error, {DatabaseId, {loading, term()}}} if loading DatabaseId failed for some reason.{error, timeout} if we've given up on waiting.See also: start_loader/2, wait_for_loader/1.
Generated by EDoc