ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::ttab_servers Struct Reference
Inheritance diagram for ngl::ttab_servers:
ngl::csv< tab_servers > ngl::csv_base

Classes

struct  node_type_hash

Public Types

using name_index = std::unordered_map<std::string, tab_servers*>
using type_index = std::unordered_map<NODE_TYPE, tab_servers*, node_type_hash>
using type_group_index = std::unordered_map<NODE_TYPE, std::vector<const tab_servers*>, node_type_hash>
using network_index = std::unordered_map<i32_serverid, std::array<const net_works*, static_cast<std::size_t>(ENET_COUNT)>>
using type_tab = tab_servers
Public Types inherited from ngl::csv< tab_servers >
using type_tab
 表类型别名

Public Member Functions

 ttab_servers (const ttab_servers &)=delete
ttab_servers & operator= (const ttab_servers &)=delete
void load_row (tab_servers &aserver, ttab_mergearea &amerge)
void reload () final
 加载后回调
const tab_serversconst_tab ()
const tab_serversconst_tab (const std::string &aname, int area)
const tab_serversconst_tab (NODE_TYPE atype, int area)
bool get_nworks (const tab_servers *atab, ENET_PROTOCOL atype, int32_t atcount, net_works &anetwork)
bool get_nworks (ENET_PROTOCOL atype, int32_t atcount, net_works &anetwork)
bool get_nworks (ENET_PROTOCOL atype, net_works &anetwork)
bool get_nworks (i32_serverid aserverid, int area, ENET_PROTOCOL atype, net_works &anetwork)
bool get_nworks (i32_serverid aserverid, ENET_PROTOCOL atype, net_works &anetwork)
bool get_nworks (const std::string &aname, int area, int32_t atcount, ENET_PROTOCOL atype, net_works &anetwork)
bool get_nworks (NODE_TYPE anodetype, i16_area area, ENET_PROTOCOL atype, int32_t atcount, net_works &anetwork)
bool isefficient (ENET_PROTOCOL atype)
bool connect (i32_serverid aserverid, net_works &anetwork)
NODE_TYPE node_type (int32_t atid)
NODE_TYPE nodetype ()
void foreach_server (const std::function< void(tab_servers *)> &afun)
const std::set< i16_area > * get_area (i16_area aarea)
template<typename TFun>
bool foreach_server (NODE_TYPE atype, i16_area aarea, const TFun &afun)
bool serverid (NODE_TYPE atype, i16_area aarea, std::set< i32_serverid > &aset)
const tab_serversfind_first (NODE_TYPE atype, i16_area aarea, const std::function< bool(const tab_servers *)> &afun)
const std::set< i16_area > * get_arealist (i32_serverid aserverid)
void get_arealist_nonrepet (i32_serverid aserverid, std::set< i16_area > &aareaset)
Public Member Functions inherited from ngl::csv< tab_servers >
 csv (const csv &)=delete
csv & operator= (const csv &)=delete
virtual void * find (int aid)
 无类型数据访问
tab_serverstab (int aid)
 按ID查询记录
std::map< int, tab_servers > & tabs ()
 获取所有表数据
virtual const std::string & verify () const
 获取内容哈希
virtual const char * csvname ()
 获取逻辑表名
virtual void load ()
 加载CSV文件
void foreach (const std::function< void(tab_servers &)> &afun)
 遍历所有记录
tab_serversfind_if (const std::function< bool(tab_servers &)> &afun)
 条件查询

Static Public Member Functions

static bool normalize_area (int area, i16_area &aout)
static bool resolve_lookup_area (int area, i16_area &aout)
static ttab_servers & instance ()
Static Public Member Functions inherited from ngl::csv< tab_servers >
static std::string path ()
 获取CSV文件路径
static tools::nhashcode hash_code ()
 获取类型哈希码
static const char * name ()
 获取类型名称
Static Public Member Functions inherited from ngl::csv_base
static std::string & path ()
 获取CSV文件根路径
static void set_path (const std::string &apath)
 设置CSV文件根路径

Public Attributes

std::map< i16_area, std::map< i32_serverid, tab_servers * > > m_areaserver
std::map< i16_area, std::set< i16_area > > m_coressserver
std::map< i16_area, std::set< i16_area > > m_singleareas
std::map< i16_area, name_index > m_areanameindex
std::map< i16_area, type_index > m_areatypeindex
std::map< i16_area, type_group_index > m_areatypegroup
network_index m_networkindex
Public Attributes inherited from ngl::csv< tab_servers >
std::map< int, tab_serversm_csv
 表数据存储,key为ID
std::string m_verify
 内容MD5哈希

Member Function Documentation

◆ const_tab()

const tab_servers * ngl::ttab_servers::const_tab ( )
inline
Note
继承自 csv<tab_servers>:tabs() 返回全部行的映射,tab(int aid) 按ID查询单行。

◆ reload()

void ngl::ttab_servers::reload ( )
inlinefinalvirtual

加载后回调

派生类可重写此方法执行加载后的初始化操作。

Reimplemented from ngl::csv< tab_servers >.


The documentation for this struct was generated from the following file: