Geolix v0.11.0 Geolix

Geolix Application.

Summary

Functions

Loads a database according to its specification

Looks up IP information

Reloads all configured databases in the background

Adds a database to lookup data from

Called when an application is started

Types

database_file()
database_file() :: String.t | {:system, String.t}

Functions

load_database(database)
load_database(map) :: :ok | {:error, String.t}

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.

lookup(ip, opts \\ [])
lookup(ip :: tuple | String.t, opts :: Keyword.t) :: nil | map

Looks up IP information.

reload_databases()
reload_databases() :: :ok

Reloads all configured databases in the background.

set_database(which, filename)
set_database(atom, database_file) :: :ok | {:error, String.t}

Adds a database to lookup data from.

start(type, args)

Called when an application is started.

This function is called when an the 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 mode 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 stop/2 callback for more information).

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

Callback implementation for Application.start/2.