locus_mmdb_tree (locus v2.3.14)

View Source

API for working with MMDB - tree section

Summary

Functions

Looks up for a DataIndex for Address within Tree

Instantiates a new Tree out of TreeData, a few metadata properties and DataSectionSize

Types

bad_tree_error/0

-type bad_tree_error() ::
          {invalid_node_index_for_ipv4_root, map()} | {ipv4_root_data_index_out_of_range, map()}.

index/0

-type index() :: non_neg_integer().

ip4_address_prefix/0

-type ip4_address_prefix() :: {inet:ip4_address(), 0..32}.

ip6_address_prefix/0

-type ip6_address_prefix() :: {inet:ip6_address(), 0..128}.

ip_address_prefix/0

-type ip_address_prefix() :: ip4_address_prefix() | ip6_address_prefix().

t/0

-opaque t()

Functions

lookup(Address, Tree)

-spec lookup(Address, Tree) -> {ok, DataIndex} | not_found | {error, Reason}
                when
                    Address :: inet:ip_address(),
                    Tree :: t(),
                    DataIndex :: locus_mmdb_data_codec:index(),
                    Reason :: ipv4_database | not_found.

Looks up for a DataIndex for Address within Tree

new(TreeData, NodeCount, RecordSize, IpVersion, DataSectionSize)

-spec new(TreeData, NodeCount, RecordSize, IpVersion, DataSectionSize) -> {ok, Tree} | {error, Reason}
             when
                 TreeData :: binary(),
                 NodeCount :: non_neg_integer(),
                 RecordSize :: non_neg_integer(),
                 IpVersion :: 4 | 6,
                 DataSectionSize :: non_neg_integer(),
                 Tree :: t(),
                 Reason :: term().

Instantiates a new Tree out of TreeData, a few metadata properties and DataSectionSize