Files
ldb/common/config.h
2026-01-20 11:51:38 +00:00

60 lines
1.2 KiB
C

#ifndef __CONFIG_H__
#define __CONFIG_H__
#include <stddef.h>
typedef enum {
LOG_LEVEL_DEBUG,
LOG_LEVEL_INFO,
LOG_LEVEL_ERROR
} LogLevel;
typedef enum {
MODE_MASTER,
MODE_SLAVE
} ServerMode;
typedef enum {
PERSIST_INCREMENTAL,
PERSIST_NONE
} PersistenceType;
typedef enum {
ALLOC_JEMALLOC,
ALLOC_MALLOC,
ALLOC_OTHER
} AllocatorType;
typedef struct {
char ip[64];
int port;
ServerMode mode;
char master_ip[64]; // slave 才需要
int master_port; // slave 才需要
LogLevel log_level;
PersistenceType persistence;
char persist_dir[256];
char oplog_file[256];
char array_file[256];
char rbtree_file[256];
char hash_file[256];
AllocatorType allocator;
} AppConfig;
/**
* 从 XML 文件加载配置
* 返回 0 表示成功;非 0 表示失败
*/
int config_load(const char *filename, AppConfig *out_cfg);
const char *log_level_to_string(LogLevel lvl);
const char *server_mode_to_string(ServerMode mode);
const char *persistence_to_string(PersistenceType p);
const char *allocator_to_string(AllocatorType a);
#endif /* CONFIG_H */