%%% -------------------------------------------------------
%%% @author huangyongxing@yeah.net
%%% @doc
%%% 游戏服在跨服中心的注册管理功能相关数据结构定义等
%%% @end
%%% -------------------------------------------------------
-ifndef(CENTER_SVR_REG_HRL).
-define(CENTER_SVR_REG_HRL, ok).

%% 跨服中心游戏服信息注册管理
%% -------------------------------------------------------
%% center_reg_svr表
-define(SQL_SELECT_REG_SVR,
    <<"SELECT `server_id`,`server_num`,`svr_cid`,`m_server_ids`,`open_time`,`time` FROM center_reg_svr">>).
-define(SQL_REPLACE_REG_SVR_PREFIX,
    <<"REPLACE INTO center_reg_svr (`server_id`,`server_num`,`svr_cid`,`m_server_ids`,`open_time`,`time`)">>).
-define(SQL_SELECT_MAX_SVR_CID,
    <<"SELECT MAX(`svr_cid`) FROM center_reg_svr WHERE svr_cid >= ~w AND svr_cid <= ~w">>).

%% center_svr_cid表
-define(SQL_SELECT_REG_CNT,
    <<"SELECT reg_cnt FROM center_svr_cid WHERE center_id = ~w">>).
-define(SQL_REPLACE_REG_CNT,
    <<"REPLACE INTO center_svr_cid (`center_id`,`reg_cnt`) VALUES (~w,~w)">>).

%% center_svr_base表
-define(SQL_REPLACE_SVR_BASE_PREFIX, <<"REPLACE INTO `center_svr_base` (`server_id`,`server_num`,`server_name`)">>).
-define(SQL_SELECT_SVR_BASE, <<"SELECT `server_id`,`server_num`,`server_name` FROM `center_svr_base`">>).

%% -------------------------------------------------------

%% ETS表，提供游戏服资料，供其他地方查询使用
-define(ETS_REG_SVR_INFO, ets_reg_svr_info).    % 跨服中所有已注册游戏服的资料（被合并的服需要查主服）
-define(ETS_ALL_SVR_BASE, ets_all_svr_base).    % 跨服中所有游戏服的服务器名的基本资料（包括已被合并的服）

%% 注册信息检查保存及重试的延迟时间
-define(REG_DB_TIMER_DELAY, 120 * 1000).
-define(SVR_BASE_DB_TIMER_DELAY, 120 * 1000).

%% 注册管理服务进程状态
-record(svr_reg_proc_state, {
        reg_svr_list = [],              % 注册服列表（含预注册，不包含已被合并的服）
        reg_cnt = 0,                    % 当前已注册序号
        reg_svr_need_saved = [],        % 注册服需要保存数据
        svr_base_need_saved = []        % 游戏服基础信息需要保存的数据
    }).

%% 跨服中心已注册服务器信息
-record(reg_svr, {
        server_id = 0               % 游戏服id
        ,server_num = 0             % 游戏服编号
        ,svr_cid = 0                % 游戏服的全部跨服唯一id（0为未正式注册）
        ,m_server_ids = []          % 已合并的游戏服id（包含主服id）
        ,open_time = 0              % 开服时间
        ,time = 0                   % 数据更新时间（发生变化，例如合服更新）
    }).

%% 跨服中心注册过的服的基本信息
%% 包含全部连接过该跨服的数据
-record(svr_base, {
        server_id = 0               % 游戏服id
        ,server_num = 0             % 游戏服编号
        ,server_name = <<>>         % 游戏服名称
    }).

-endif.
