ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::xmlnode Class Reference

XML节点配置管理类。 More...

#include <xml.h>

Public Member Functions

void init ()
 XML序列化宏,定义XML读写方法
bool set_server (const char *aservertypename)
 设置服务器类型。
void set_nodeid (int16_t atid, int16_t atcount)
 设置节点ID。
void set_area (int16_t aarea)
 设置区域。
void set_servername (const std::string &asername)
 设置服务器名称。
std::string & servername ()
 获取服务器名称。
bool load (const std::string &axmlpath, const std::string &aname)
 加载XML配置文件。
const std::string & nodename () const
 获取节点名称。
const std::string & config_file () const
 获取配置文件路径。
const std::string & config_name () const
 获取配置名称。
xarg_infoinfo ()
 获取公共信息配置。
int16_t tcount ()
 获取线程总数。
int16_t tid ()
 获取线程ID。
i32_serverid nodeid ()
 获取节点ID。
NODE_TYPE nodetype ()
 获取节点类型。
int16_t area ()
 获取区域。
int16_t merge_area ()
 获取合并区域。
int16_t merge_corss_area ()
 获取合并跨服区域。
xarg_dbdb ()
 获取数据库配置。
xarg_dbcrossdb ()
 获取跨服数据库配置。
xarg_db::edb dbedb ()
 获取数据库类型。
xarg_mailmail ()
 获取邮件配置。
xarg_telnettelnet ()
 获取Telnet配置。
xarg_wsswss ()
 获取WebSocket配置。
xarg_redisredis ()
 获取Redis配置。

Static Public Member Functions

static xmlnodeinstance ()
 获取单例实例。

Detailed Description

XML节点配置管理类。

管理服务器的运行时配置,从XML文件加载一次后通过nconfig宏作为进程级单例对外暴露。 包含数据库、邮件、Telnet、WebSocket、Redis等各个子系统的配置。

Note
使用单例模式,通过instance()方法获取实例。
使用DXMLSERIALIZE宏实现XML序列化功能。

Member Function Documentation

◆ area()

int16_t ngl::xmlnode::area ( )

获取区域。

Returns
区域ID

◆ config_file()

const std::string & ngl::xmlnode::config_file ( ) const

获取配置文件路径。

Returns
配置文件路径

◆ config_name()

const std::string & ngl::xmlnode::config_name ( ) const

获取配置名称。

Returns
配置名称

◆ crossdb()

xarg_db & ngl::xmlnode::crossdb ( )

获取跨服数据库配置。

Returns
跨服数据库配置引用

◆ db()

xarg_db & ngl::xmlnode::db ( )

获取数据库配置。

Returns
数据库配置引用

◆ dbedb()

xarg_db::edb ngl::xmlnode::dbedb ( )

获取数据库类型。

Returns
数据库类型枚举值

◆ info()

xarg_info * ngl::xmlnode::info ( )

获取公共信息配置。

Returns
公共信息配置指针

◆ init()

void ngl::xmlnode::init ( )

XML序列化宏,定义XML读写方法

初始化节点类型枚举映射

初始化配置。

加载并初始化所有配置参数。

将NODE_TYPE枚举值与字符串名称一一注册到工具库中。

◆ instance()

xmlnode & ngl::xmlnode::instance ( )
inlinestatic

获取单例实例。

Returns
xmlnode单例实例的引用

◆ load()

bool ngl::xmlnode::load ( const std::string & axmlpath,
const std::string & aname )

加载XML配置文件。

加载指定名称的XML配置文件

Parameters
axmlpathXML文件路径
aname配置名称
Returns
加载成功返回true,否则返回false
Parameters
axmlpath配置文件根目录路径
aname配置文件名(不含.xml后缀)
Return values
true加载成功
false加载失败

◆ mail()

xarg_mail & ngl::xmlnode::mail ( )

获取邮件配置。

Returns
邮件配置引用

◆ merge_area()

int16_t ngl::xmlnode::merge_area ( )

获取合并区域。

Returns
合并后的区域ID

◆ merge_corss_area()

int16_t ngl::xmlnode::merge_corss_area ( )

获取合并跨服区域。

Returns
合并后的跨服区域ID

◆ nodeid()

i32_serverid ngl::xmlnode::nodeid ( )

获取节点ID。

Returns
节点ID

◆ nodename()

const std::string & ngl::xmlnode::nodename ( ) const

获取节点名称。

Returns
节点名称

◆ nodetype()

NODE_TYPE ngl::xmlnode::nodetype ( )

获取节点类型。

Returns
节点类型

◆ redis()

xarg_redis & ngl::xmlnode::redis ( )

获取Redis配置。

Returns
Redis配置引用

◆ servername()

std::string & ngl::xmlnode::servername ( )

获取服务器名称。

Returns
服务器名称的引用

◆ set_area()

void ngl::xmlnode::set_area ( int16_t aarea)

设置区域。

设置服务器区域ID

Parameters
aarea区域ID
aarea区域标识

◆ set_nodeid()

void ngl::xmlnode::set_nodeid ( int16_t atid,
int16_t atcount )

设置节点ID。

设置节点ID和实例计数

Parameters
atid线程ID
atcount线程总数
atid服务器表ID
atcount实例序号

◆ set_server()

bool ngl::xmlnode::set_server ( const char * aservertypename)

设置服务器类型。

设置服务器节点类型

Parameters
aservertypename服务器类型名称
Returns
设置成功返回true,否则返回false
Parameters
aservertypename服务器类型名称字符串(如"db"、"gateway"等)
Return values
true设置成功
false名称为nullptr或无法识别的类型

◆ set_servername()

void ngl::xmlnode::set_servername ( const std::string & asername)

设置服务器名称。

设置服务器显示名称

Parameters
asername服务器名称
asername服务器名称字符串

◆ tcount()

int16_t ngl::xmlnode::tcount ( )

获取线程总数。

Returns
线程总数

◆ telnet()

xarg_telnet & ngl::xmlnode::telnet ( )

获取Telnet配置。

Returns
Telnet配置引用

◆ tid()

int16_t ngl::xmlnode::tid ( )

获取线程ID。

Returns
线程ID

◆ wss()

xarg_wss & ngl::xmlnode::wss ( )

获取WebSocket配置。

Returns
WebSocket配置引用

The documentation for this class was generated from the following files: