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

CSV读取器 More...

#include <csv.h>

Public Member Functions

bool read (const std::string &aname, std::string &averify)
 加载CSV文件
template<typename T>
bool readcsv (std::map< int, T > &adata)
 解析CSV文件为map结构

Static Public Member Functions

template<typename ... ARG>
static bool readcsv (csvpair &apair, ARG &...args)
 解析CSV字段到多个变量

Detailed Description

CSV读取器

提供CSV文件的读取和解析功能,支持:

  • 从文件加载CSV内容
  • 解析为结构化数据(map、tuple等)
  • 内容哈希用于热加载检查
    // 读取CSV文件并解析为map
    ngl::rcsv reader;
    std::map<int, MyTable> data;
    std::string verify_hash;
    if (reader.read("config.csv", verify_hash)) {
    reader.readcsv(data);
    }
    // 解析单行CSV为多个字段
    pair.m_data = "1,name,100";
    int id; std::string name; int value;
    ngl::rcsv::readcsv(pair, id, name, value);

Member Function Documentation

◆ read()

bool ngl::rcsv::read ( const std::string & aname,
std::string & averify )

加载CSV文件

读取CSV文件并计算MD5校验值

Parameters
aname文件路径
averify输出内容哈希,用于热加载检查
Returns
加载成功返回true

跳过前3字节的UTF-8 BOM标记后读取整个文件内容, 用于后续的行解析和热加载验证。

Parameters
anameCSV文件路径
averify输出参数,返回文件内容的MD5校验值
Return values
true读取成功
false文件读取失败

◆ readcsv() [1/2]

template<typename ... ARG>
bool ngl::rcsv::readcsv ( csvpair & apair,
ARG &... args )
inlinestatic

解析CSV字段到多个变量

Template Parameters
ARG变量类型
Parameters
apair解析器状态
args输出变量
Returns
解析成功返回true

使用折叠表达式批量解析CSV字段。

◆ readcsv() [2/2]

template<typename T>
bool ngl::rcsv::readcsv ( std::map< int, T > & adata)
inline

解析CSV文件为map结构

Template Parameters
T表结构类型
Parameters
adata输出map,key为ID
Returns
解析成功返回true

要求表结构具有 m_id 成员和 rcsv 方法。 跳过以 '#' 开头的注释行。


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