CSV表模板类
More...
#include <ncsv.h>
|
|
| 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) |
| | 条件查询
|
|
|
std::map< int, T > | m_csv |
| | 表数据存储,key为ID
|
|
std::string | m_verify |
| | 内容MD5哈希
|
template<typename T>
struct ngl::csv< T >
CSV表模板类
- Template Parameters
-
提供类型安全的CSV表访问,支持:
- 按ID查询记录
- 遍历所有记录
- 条件查询
- 内容哈希用于热加载
struct MyTable {
int m_id;
std::string m_name;
};
MyTable* item = table->
tab(123);
table->
foreach([](MyTable& item) { });
◆ csvname()
template<typename T>
| virtual const char * ngl::csv< T >::csvname |
( |
| ) |
|
|
inlinevirtual |
◆ find()
template<typename T>
| virtual void * ngl::csv< T >::find |
( |
int | aid | ) |
|
|
inlinevirtual |
无类型数据访问
- Parameters
-
- 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
-
- Returns
- 符合条件的第一条记录,未找到返回nullptr
◆ foreach()
template<typename T>
| void ngl::csv< T >::foreach |
( |
const std::function< void(T &)> & | afun | ) |
|
|
inline |
◆ hash_code()
获取类型哈希码
- Returns
- 哈希码结构体
每个类型的稳定哈希,用于热加载/协议元数据。
◆ load()
◆ name()
◆ path()
◆ reload()
加载后回调
派生类可重写此方法执行加载后的初始化操作。
Implements ngl::csv_base.
Reimplemented in ngl::ttab_activity, ngl::ttab_activity_drawcompliance, ngl::ttab_activity_toprank, ngl::ttab_activityalways, ngl::ttab_activityopenserver, ngl::ttab_attribute, ngl::ttab_card, ngl::ttab_chat, ngl::ttab_consume, ngl::ttab_dbload, ngl::ttab_equip, ngl::ttab_equiplv, ngl::ttab_errormessage, ngl::ttab_familylv, ngl::ttab_filterword, ngl::ttab_item, ngl::ttab_mail, ngl::ttab_map, ngl::ttab_matching, ngl::ttab_mergearea, ngl::ttab_plays, ngl::ttab_random, ngl::ttab_ranklist, ngl::ttab_recharge, ngl::ttab_servers, ngl::ttab_specialid, ngl::ttab_synthesis, and ngl::ttab_task.
◆ tab()
按ID查询记录
- Parameters
-
- Returns
- 记录指针,未找到返回nullptr
◆ tabs()
template<typename T>
| std::map< int, T > & ngl::csv< T >::tabs |
( |
| ) |
|
|
inline |
◆ verify()
template<typename T>
| virtual const std::string & ngl::csv< T >::verify |
( |
| ) |
const |
|
inlinevirtual |
The documentation for this struct was generated from the following file:
- E:/GitHub/ngl_server/public/cpp/tools/tab/csv/ncsv.h