56 lines
1.8 KiB
Erlang
56 lines
1.8 KiB
Erlang
-ifndef(IP2REGION_HRL).
|
|
-define(IP2REGION_HRL, true).
|
|
|
|
-define(NONE, none).
|
|
-define(APP_NAME, ip2region).
|
|
|
|
-define(XDB_VECTOR_INDEX, ets_xdb_vector_index).
|
|
-define(XDB_SEGMENT_INDEX, ets_xdb_segement_index).
|
|
-define(IP2REGION_CACHE, ets_ip2region_cache).
|
|
|
|
|
|
-define(XDB_HEADER_SIZE, 256).
|
|
-define(XDB_VECTOR_COLS, 256).
|
|
-define(XDB_VECTOR_INDEX_SIZE, 8).
|
|
-define(XDB_VECTOR_INDEX_COUNT, (16#10000)). %% 256*256
|
|
|
|
-define(XDB_SEGMENT_INDEX_SIZE, 14).
|
|
|
|
-define(IP2REGION_POOL, ip2region_pool).
|
|
|
|
%% xdb header field offsets (bytes)
|
|
-define(XDB_HEADER_VERSION_OFFSET, 0).
|
|
-define(XDB_HEADER_INDEX_POLICY_OFFSET, 2).
|
|
-define(XDB_HEADER_CREATED_AT_OFFSET, 4).
|
|
-define(XDB_HEADER_START_INDEX_PTR_OFFSET, 8).
|
|
-define(XDB_HEADER_END_INDEX_PTR_OFFSET, 12).
|
|
-define(XDB_HEADER_IP_VERSION_OFFSET, 16).
|
|
-define(XDB_HEADER_RUNTIME_PTR_BYTES_OFFSET, 18).
|
|
-define(XDB_HEADER_INFO_LENGTH, 256).
|
|
|
|
%% IP versions as stored in xdb header
|
|
-define(IP_VERSION_4, 4).
|
|
-define(IP_VERSION_6, 6).
|
|
|
|
%% Segment index sizes (bytes): start_ip + end_ip + data_len + data_ptr
|
|
-define(XDB_SEGMENT_INDEX_SIZE_V4, 14). %% 4 + 4 + 2 + 4
|
|
-define(XDB_SEGMENT_INDEX_SIZE_V6, 38). %% 16 + 16 + 2 + 4
|
|
|
|
%% Per-version ETS tables
|
|
-define(XDB_VECTOR_INDEX_V4, ets_xdb_vector_index_v4).
|
|
-define(XDB_VECTOR_INDEX_V6, ets_xdb_vector_index_v6).
|
|
-define(XDB_SEGMENT_INDEX_V4, ets_xdb_segment_index_v4).
|
|
-define(XDB_SEGMENT_INDEX_V6, ets_xdb_segment_index_v6).
|
|
-define(IP2REGION_CACHE_V4, ets_ip2region_cache_v4).
|
|
-define(IP2REGION_CACHE_V6, ets_ip2region_cache_v6).
|
|
|
|
%% Per-version pool names. ?IP2REGION_POOL is kept as the legacy v4 pool name.
|
|
-define(IP2REGION_POOL_V4, ip2region_pool_v4).
|
|
-define(IP2REGION_POOL_V6, ip2region_pool_v6).
|
|
|
|
-ifndef(IF).
|
|
-define(IF(C, T, F), case (C) of true -> (T); false -> (F) end).
|
|
-define(IF(C, T), ?IF(C, T, skip)).
|
|
-endif.
|
|
|
|
-endif. |