sdk-hwV1.3/external/eyesee-mpp/system/public/include/lua/lua_config_parser.h

68 lines
1.9 KiB
C++
Executable File

/* *******************************************************************************
* Copyright (c), 2001-2016, Allwinner Tech. All rights reserved.
* *******************************************************************************/
/**
* @file lua_config_parser.h
* @brief lua 配置解析类
* @author id:826
* @version v0.1
* @date 2016-10-11
*/
#pragma once
#include <string>
#include <mutex>
struct lua_State;
class LuaConfig {
public:
LuaConfig();
~LuaConfig();
lua_State *GetContext();
int LoadFromFile(const std::string &filepath);
int SyncConfigToFile(const std::string &filepath, const std::string &table);
int SyncToFile(const std::string &filepath);
std::string GetStringValue(const std::string &path);
std::string GetStringValue(const std::string &path, const std::string &default_value);
int GetIntegerValue(const std::string &path);
int GetIntegerValue(const std::string &path, const int default_value);
double GetDoubleValue(const std::string &path);
double GetDoubleValue(const std::string &path, const double default_value);
bool GetBoolValue(const std::string &path);
bool GetBoolValue(const std::string &path, const bool default_value);
int SetStringValue(const std::string &path, const std::string &value);
int SetIntegerValue(const std::string &path, const int &value);
int SetDoubleValue(const std::string &path, const double &value);
int SetBoolValue(const std::string &path, const bool &value);
void RegisterTableFiled(const std::string &table_name, const std::string &filed, const int &value);
private:
lua_State *lua_context_;
std::mutex lock_;
int LoadValueToStack(const std::string &path);
int SetValueToLua(const std::string &path, const std::string &value);
}; // class LuaConfig