我们在开发中常用ini或者xml做配置文件,ini配置只有简单的节、键、值组成,无法应对复杂的多层次配置,或者列表配置。xml文件层次分明,写起来比较复杂。lua脚本作为一门轻量小巧的脚本语言,常用在游戏开发中或者web应用中。lua脚本简单清晰,很适合做配置文件。可以做服务器端程序的配置文件,下面是封装了一个类,用于来读取lua配置文件。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <assert.h>
#include <string>
#include <vector>
extern "C"
{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
class luaConfile
{
public:
luaConfile();
~luaConfile();
/*
* \brief 加载lua配置文件
* \param file lua配置文件路径
*/
bool loadFile(const char* file);
/*
* \brief 解析获取全局数据的字符串
* \param key全局数据的键 例:serverIP="127.0.0.1" key就是"serverIP" 得value="127.0.0.1"
* \param value 返回的字符串
*
* return 是否读取成功
*/
bool getStringVal(const char* key, std::string& value);
/*
* \brief 解析获取全局数据的int型数值
* \param key全局数据的键 例:serverPort=9010 key就是"serverPort" 得value=9010
* \param value 返回的int值
*
* return 是否读取成功
*/
bool getIntegerVal(const char* key, int& value);
/*
* \brief 解析获取全局数据的double型数值
* \param key全局数据的键 例:param=10.35 key就是"param" 得value=10.35
* \param value 返回的double值
*
* return 是否读取成功
*/