Geolix v0.15.1 Geolix View Source

Geolix Application.

Link to this section Summary

Functions

Loads a database according to its specification

Looks up IP information

Reloads all configured databases in the background

Called when an application is started

Unloads a database

Link to this section Types

Link to this type database_file() View Source
database_file() ::
  String.t() |
  {:system, String.t()} |
  {:system, String.t(), String.t()}

Link to this section Functions

Link to this function load_database(database) View Source
load_database(map()) :: :ok | {:error, term()}

Loads a database according to its specification.

Requires at least the fields :id and :adapter. Any other required fields depend on the adapter’s requirements.

Link to this function lookup(ip, opts \\ []) View Source
lookup(ip :: tuple() | String.t(), opts :: Keyword.t()) :: nil | map()

Looks up IP information.

Link to this function reload_databases() View Source
reload_databases() :: :ok

Reloads all configured databases in the background.

Called when an application is started.

This function is called when an application is started using Application.start/2 (and functions on top of that, such as Application.ensure_started/2). This function should start the top-level process of the application (which should be the top supervisor of the application’s supervision tree if the application follows the OTP design principles around supervision).

start_type defines how the application is started:

  • :normal - used if the startup is a normal startup or if the application is distributed and is started on the current node because of a failover from another node and the application specification key :start_phases is :undefined.
  • {:takeover, node} - used if the application is distributed and is started on the current node because of a failover on the node node.
  • {:failover, node} - used if the application is distributed and is started on the current node because of a failover on node node, and the application specification key :start_phases is not :undefined.

start_args are the arguments passed to the application in the :mod specification key (e.g., mod: {MyApp, [:my_args]}).

This function should either return {:ok, pid} or {:ok, pid, state} if startup is successful. pid should be the PID of the top supervisor. state can be an arbitrary term, and if omitted will default to []; if the application is later stopped, state is passed to the stop/1 callback (see the documentation for the c:stop/1 callback for more information).

use Application provides no default implementation for the start/2 callback.

Callback implementation for Application.start/2.

Link to this function unload_database(id) View Source
unload_database(atom()) :: :ok

Unloads a database.

This operation is lazy. The database will stay loaded but won’t be reloaded or used for lookups.