open5gs/lib/base/context.h

66 lines
1.3 KiB
C

#ifndef __CONTEXT_H__
#define __CONTEXT_H__
#include "core_debug.h"
#include "core_param.h"
#include "core_jsmn.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define MAX_CONFIG_FILE_SIZE 2048
#define MAX_NUM_OF_CONFIG_TOKEN 256
typedef struct _config_t {
char *path;
char json[MAX_CONFIG_FILE_SIZE+1];
jsmntok_t token[MAX_NUM_OF_CONFIG_TOKEN];
} config_t;
#define MAX_DB_URI_LEN 256
typedef struct _context_t {
config_t config;
char *log_path;
char *db_uri;
void *db_client;
char *db_name;
void *database;
struct {
int s1ap;
int nas;
int gtp;
int fd;
int others;
} trace_level;
struct {
int disable_hss;
int disable_sgw;
int disable_pgw;
int disable_pcrf;
} hidden;
} context_t;
CORE_DECLARE(status_t) context_init(void);
CORE_DECLARE(status_t) context_final(void);
CORE_DECLARE(context_t*) context_self(void);
CORE_DECLARE(status_t) context_read_file(char *file_path);
CORE_DECLARE(status_t) context_parse_config(void);
CORE_DECLARE(status_t) context_setup_trace_module(void);
CORE_DECLARE(status_t) context_db_init(char *db_uri);
CORE_DECLARE(status_t) context_db_final(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __CONTEXT_H__ */