87 lines
2.7 KiB
C
87 lines
2.7 KiB
C
#ifndef __DORIS_CONSUMER_CLIENT_H__
|
||
#define __DORIS_CONSUMER_CLIENT_H__
|
||
|
||
#include <event.h>
|
||
#include <cjson/cJSON.h>
|
||
|
||
enum FSSTAT_DORIS_FILED_ITEMS
|
||
{
|
||
DRS_FS_FILED_REQ_FAIL=0,
|
||
DRS_FS_FILED_REQ_META,
|
||
DRS_FS_FILED_RES_META,
|
||
DRS_FS_FILED_RES_NOMETA,
|
||
DRS_FS_FILED_REQ_FILES,
|
||
DRS_FS_FILED_RES_FILES,
|
||
DRS_FS_FILED_RES_FRAGS,
|
||
DRS_FS_FILED_RES_FRAGERR,
|
||
DRS_FS_FILED_RES_BYTES,
|
||
DRS_FS_FILED_RES_VERERR,
|
||
|
||
DRS_FS_FILED_BACKUP1_REQ,
|
||
DRS_FS_FILED_BACKUP2_REQ,
|
||
|
||
FSSTAT_DORIS_FILED_NUM,
|
||
};
|
||
|
||
enum FSSTAT_DORIS_STATUS_ITEMS
|
||
{
|
||
DRS_FS_STAT_MST_CNN_SRV=0,
|
||
DRS_FS_STAT_MST_FAIL_SRV,
|
||
DRS_FS_STAT_BCK1_CNN_SRV,
|
||
DRS_FS_STAT_BCK1_FAIL_SRV,
|
||
DRS_FS_STAT_BCK2_CNN_SRV,
|
||
DRS_FS_STAT_BCK2_FAIL_SRV,
|
||
DRS_FS_STAT_MEMORY_USED,
|
||
DRS_FS_STAT_HTTP_SESSIONS,
|
||
|
||
FSSTAT_DORIS_STATUS_NUM,
|
||
};
|
||
|
||
struct doris_csum_statistics
|
||
{
|
||
long long field[FSSTAT_DORIS_FILED_NUM];
|
||
long long status[FSSTAT_DORIS_STATUS_NUM];
|
||
};
|
||
|
||
struct doris_arguments
|
||
{
|
||
char bizname[32];
|
||
int64_t current_version; //当前已获取完毕的最新版本号,将从它下一个版本取配置; 负数表示获取最新的N个版本;
|
||
int32_t judian_id;
|
||
};
|
||
|
||
struct tablemeta
|
||
{
|
||
const char *tablename; //表名,行列式maat适配;非行列式为文件名
|
||
const char *filename; //落地时要求的文件名
|
||
const char *userregion;
|
||
size_t size;
|
||
u_int32_t cfgnum;
|
||
};
|
||
|
||
struct doris_csum_param;
|
||
struct doris_csum_instance;
|
||
struct doris_callbacks
|
||
{
|
||
void *userdata;
|
||
void (*version_start)(struct doris_csum_instance *instance, cJSON *meta, void *userdata); //meta在整个版本声明周期内都有效
|
||
void (*cfgfile_start)(struct doris_csum_instance *instance, const struct tablemeta *meta, const char *unused, void *userdata);
|
||
void (*cfgfile_update)(struct doris_csum_instance *instance, const char *data, size_t len, void *userdata);
|
||
void (*cfgfile_finish)(struct doris_csum_instance *instance, const char *md5, void *userdata);
|
||
void (*version_error)(struct doris_csum_instance *instance, void *userdata); //下载文件失败,该版本需要回滚
|
||
void (*version_finish)(struct doris_csum_instance *instance, void *userdata);
|
||
void (*version_updated)(struct doris_csum_instance *instance, int64_t lastest_version, void *userdata); //暂时没有新配置
|
||
};
|
||
|
||
struct doris_csum_param *doris_csum_parameter_new(const char *confile, struct event_base *manage_evbase, void *runtimelog);
|
||
void doris_csum_parameter_destroy(struct doris_csum_param *param);
|
||
u_int32_t doris_csum_param_get_refernces(struct doris_csum_param *param);
|
||
|
||
struct doris_csum_instance *doris_csum_instance_new(struct doris_csum_param *param, struct event_base *worker_evbase,
|
||
struct doris_callbacks *cbs, struct doris_arguments *args, void *runtimelog);
|
||
struct doris_csum_param *doris_csum_instance_get_param(struct doris_csum_instance *instance);
|
||
void doris_csum_instance_destroy(struct doris_csum_instance *instance);
|
||
|
||
#endif
|
||
|