ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::csv< T > Struct Template Reference

CSV表模板类 More...

#include <ncsv.h>

Inheritance diagram for ngl::csv< T >:
ngl::csv_base

Public Types

using type_tab = T
 表类型别名

Public Member Functions

 csv (const csv &)=delete
csv & operator= (const csv &)=delete
virtual void * find (int aid)
 无类型数据访问
T * tab (int aid)
 按ID查询记录
std::map< int, T > & tabs ()
 获取所有表数据
virtual void reload ()
 加载后回调
virtual const std::string & verify () const
 获取内容哈希
virtual const char * csvname ()
 获取逻辑表名
virtual void load ()
 加载CSV文件
void foreach (const std::function< void(T &)> &afun)
 遍历所有记录
T * find_if (const std::function< bool(T &)> &afun)
 条件查询

Static Public Member Functions

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< int, T > m_csv
 表数据存储,key为ID
std::string m_verify
 内容MD5哈希

Detailed Description

template<typename T>
struct ngl::csv< T >

CSV表模板类

Template Parameters
T表结构类型

提供类型安全的CSV表访问,支持:

Member Function Documentation

◆ csvname()

template<typename T>
virtual const char * ngl::csv< T >::csvname ( )
inlinevirtual

获取逻辑表名

Returns
表名字符串

Implements ngl::csv_base.

◆ find()

template<typename T>
virtual void * ngl::csv< T >::find ( int aid)
inlinevirtual

无类型数据访问

Parameters
aid记录ID
Returns
数据指针,未找到返回nullptr

Implements ngl::csv_base.

◆ find_if()

template<typename T>
T * ngl::csv< T >::find_if ( const std::function< bool(T &)> & afun)
inline

条件查询

Parameters
afun查询条件函数
Returns
符合条件的第一条记录,未找到返回nullptr

◆ foreach()

template<typename T>
void ngl::csv< T >::foreach ( const std::function< void(T &)> & afun)
inline

遍历所有记录

Parameters
afun回调函数,接收每条记录

◆ hash_code()

template<typename T>
tools::nhashcode ngl::csv< T >::hash_code ( )
inlinestatic

获取类型哈希码

Returns
哈希码结构体

每个类型的稳定哈希,用于热加载/协议元数据。

◆ load()

template<typename T>
void ngl::csv< T >::load ( )
virtual

加载CSV文件

从文件加载CSV数据到内存。

Implements ngl::csv_base.

◆ name()

template<typename T>
const char * ngl::csv< T >::name ( )
inlinestatic

获取类型名称

Returns
类型名称字符串

◆ path()

template<typename T>
std::string ngl::csv< T >::path ( )
inlinestatic

获取CSV文件路径

Returns
文件路径字符串

◆ reload()

◆ tab()

template<typename T>
T * ngl::csv< T >::tab ( int aid)
inline

按ID查询记录

Parameters
aid记录ID
Returns
记录指针,未找到返回nullptr

◆ tabs()

template<typename T>
std::map< int, T > & ngl::csv< T >::tabs ( )
inline

获取所有表数据

Returns
表数据map引用

◆ verify()

template<typename T>
virtual const std::string & ngl::csv< T >::verify ( ) const
inlinevirtual

获取内容哈希

Returns
内容哈希字符串引用

Implements ngl::csv_base.


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