This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
tango-maat/src/inc_internal/maat_table.h

83 lines
2.8 KiB
C
Raw Normal View History

2023-01-30 21:59:35 +08:00
/*
**********************************************************************************************
* File: maat_table.h
* Description: maat table schema and runtime
* Authors: Liu WenTan <liuwentan@geedgenetworks.com>
* Date: 2022-10-31
* Copyright: (c) 2018-2022 Geedge Networks, Inc. All rights reserved.
***********************************************************************************************
*/
#ifndef _MAAT_TABLE_H_
#define _MAAT_TABLE_H_
#ifdef __cplusplus
2023-01-30 21:59:35 +08:00
extern "C"
{
#endif
#include <stddef.h>
#include <cJSON/cJSON.h>
#include "maat_garbage_collection.h"
2023-01-30 21:59:35 +08:00
enum table_type {
TABLE_TYPE_INVALID = -1,
2023-02-06 08:14:25 +08:00
TABLE_TYPE_FLAG = 0,
TABLE_TYPE_EXPR,
2023-01-30 21:59:35 +08:00
TABLE_TYPE_EXPR_PLUS,
TABLE_TYPE_IP_PLUS,
TABLE_TYPE_INTERVAL,
TABLE_TYPE_INTERVAL_PLUS,
TABLE_TYPE_DIGEST,
TABLE_TYPE_SIMILARITY,
TABLE_TYPE_CONJUNCTION,
TABLE_TYPE_PLUGIN,
TABLE_TYPE_IP_PLUGIN,
TABLE_TYPE_FQDN_PLUGIN,
TABLE_TYPE_BOOL_PLUGIN,
//above are physical table
TABLE_TYPE_VIRTUAL,
TABLE_TYPE_COMPILE,
TABLE_TYPE_GROUP2GROUP,
TABLE_TYPE_GROUP2COMPILE,
TABLE_TYPE_MAX
};
struct table_manager;
2023-02-03 17:28:14 +08:00
struct table_manager *
table_manager_create(const char *table_info_path, const char *accept_tags,
struct maat_garbage_bin *garbage_bin, struct log_handle *logger);
2023-01-31 20:39:53 +08:00
int table_manager_runtime_create(struct table_manager *tbl_mgr, int max_thread_num,
struct maat_garbage_bin *garbage_bin);
void table_manager_runtime_destroy(struct table_manager *tbl_mgr);
2023-01-30 21:59:35 +08:00
void table_manager_destroy(struct table_manager *tbl_mgr);
size_t table_manager_table_count(struct table_manager *tbl_mgr);
int table_manager_get_table_id(struct table_manager *tbl_mgr, const char *name);
enum table_type table_manager_get_table_type(struct table_manager *tbl_mgr, int table_id);
2023-02-03 17:28:14 +08:00
2023-01-31 20:39:53 +08:00
int table_manager_get_defaut_compile_table_id(struct table_manager *tbl_mgr);
2023-02-03 17:28:14 +08:00
int table_manager_get_group2group_table_id(struct table_manager *tbl_mgr);
2023-01-30 21:59:35 +08:00
int table_manager_get_valid_column(struct table_manager *tbl_mgr, int table_id);
2023-02-03 17:28:14 +08:00
size_t table_manager_accept_tags_count(struct table_manager *tbl_mgr);
2023-01-31 20:39:53 +08:00
int table_manager_accept_tags_match(struct table_manager *tbl_mgr, const char *tags);
2023-01-30 21:59:35 +08:00
2023-02-03 17:28:14 +08:00
int table_manager_set_scan_district(struct table_manager *tbl_mgr, const char *district_str,
size_t district_str_len, int *district_id);
2023-02-06 08:14:25 +08:00
int table_manager_get_district_id(struct table_manager *tbl_mgr, const char *district);
2023-02-03 17:28:14 +08:00
void *table_manager_get_schema(struct table_manager *tbl_mgr, int table_id);
2023-01-30 21:59:35 +08:00
void *table_manager_get_runtime(struct table_manager *tbl_mgr, int table_id);
2023-02-03 17:28:14 +08:00
2023-01-31 20:39:53 +08:00
int table_manager_update_runtime(struct table_manager *tbl_mgr, int table_id, const char *line);
2023-01-30 21:59:35 +08:00
void table_manager_commit_runtime(struct table_manager *tbl_mgr, int table_id);
#ifdef __cplusplus
2023-01-30 21:59:35 +08:00
}
#endif
#endif