-
Notifications
You must be signed in to change notification settings - Fork 0
/
skynet_loadconf.h
52 lines (42 loc) · 1.03 KB
/
skynet_loadconf.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef __SKYNET_LOADCONF_H__
#define __SKYNET_LOADCONF_H__
#include <lua.hpp>
#include <string>
#include "singletion.h"
struct skynet_config {
int thread;
int harbor;
int profile;
std::string daemon;
std::string module_path;
std::string bootstrap;
std::string logger;
std::string logservice;
};
class Skynet_LoadConfig {
public:
Skynet_LoadConfig(struct lua_State *l) : L(l) {
luaL_openlibs(L); // link lua libs
init();
}
Skynet_LoadConfig() {
L = luaL_newstate();
luaL_openlibs(L); // link lua libs
init();
}
~Skynet_LoadConfig() {
lua_close(L);
}
bool load_config_file(const char* config_file);
const skynet_config* getConfig() const {
return &config;
}
template <class T>
void set_opt(const char* key, T value);
private:
void init(); //³õʼ»¯Ò»Ð©ÅäÖÃ
struct lua_State *L; //operator lua config
static const char *load_config;
struct skynet_config config;
};
#endif