81 lines
2.7 KiB
C
81 lines
2.7 KiB
C
#ifndef __DORIS_PRODUCER_CLIENT_H__
|
||
#define __DORIS_PRODUCER_CLIENT_H__
|
||
|
||
enum FSSTAT_DRS_PROD_FILED_ITEMS
|
||
{
|
||
DRS_FSPRD_FILED_VERSTART=0,
|
||
DRS_FSPRD_FILED_VEREND,
|
||
DRS_FSPRD_FILED_VERCANCEL,
|
||
DRS_FSPRD_FILED_FILEFRAG,
|
||
DRS_FSPRD_FILED_FILEONCE,
|
||
|
||
FSSTAT_DORIS_PRD_FILED_NUM,
|
||
};
|
||
|
||
enum FSSTAT_DRS_PROD_STATUS_ITEMS
|
||
{
|
||
DRS_FSPRD_STAT_CNNED_SERVERS=0,
|
||
DRS_FSPRD_STAT_FAILED_SERVERS,
|
||
DRS_FSPRD_STAT_MEMORY_USED,
|
||
DRS_FSPRD_STAT_HTTP_SESSIONS,
|
||
DRS_FSPRD_STAT_REQ_SESSIONS,
|
||
|
||
FSSTAT_DORIS_PRD_STATUS_NUM,
|
||
};
|
||
|
||
struct doris_prod_statistics
|
||
{
|
||
long long field[FSSTAT_DORIS_PRD_FILED_NUM];
|
||
long long status[FSSTAT_DORIS_PRD_STATUS_NUM];
|
||
};
|
||
|
||
struct doris_prod_param;
|
||
struct doris_prod_instance;
|
||
struct doris_upload_ctx;
|
||
|
||
struct doris_prod_param *doris_prod_parameter_new(const char *confile, struct event_base *manage_evbase, void *runtimelog);
|
||
struct doris_prod_instance *doris_prod_instance_new(struct doris_prod_param *param, struct event_base *worker_evbase, void *runtimelog);
|
||
|
||
enum PROD_VERSTART_RES
|
||
{
|
||
VERSTART_RES_OK=0,
|
||
VERSTART_RES_BUSY, //响应码300,代表server有已完成start的在途版本
|
||
VERSTART_RES_ERROR, //取得了响应,但是响应码400,要么非法请求,要么有未完成start的版本;
|
||
VERSTART_CURL_ERROR, //curl原因未正常取得响应
|
||
};
|
||
|
||
/*cfgtype: 1-全量,2-增量*/
|
||
struct doris_upload_ctx *doris_prod_upload_ctx_new(struct doris_prod_instance *instance,const char *business, int32_t cfgtype);
|
||
void doris_prod_upload_ctx_destroy(struct doris_upload_ctx *ctx);
|
||
|
||
int32_t doris_prod_version_start(struct doris_upload_ctx *ctx);
|
||
int32_t doris_prod_version_start_with_cb(struct doris_upload_ctx *ctx,
|
||
void (*verstart_cb)(enum PROD_VERSTART_RES result, const char *body, void *userdata), void *userdata);
|
||
|
||
enum PROD_VEROP_RES
|
||
{
|
||
VERSIONOP_RES_OK=0,
|
||
VERSIONOP_RES_ERROR,
|
||
VERSIONOP_CURL_ERROR,
|
||
};
|
||
|
||
struct table_meta
|
||
{
|
||
const char *tablename; //表名,行列式maat适配;非行列式为文件名
|
||
const char *filename; //落地时要求的文件名
|
||
const char *userregion;
|
||
const char *md5;
|
||
u_int32_t cfgnum;
|
||
};
|
||
|
||
int32_t doris_prod_upload_once_with_cb(struct doris_upload_ctx *ctx, char *data, size_t size,
|
||
struct table_meta *meta, void (*upfrag_cb)(enum PROD_VEROP_RES result, void *userdata), void *userdata);
|
||
int32_t doris_prod_upload_frag_with_cb(struct doris_upload_ctx *ctx, char *data, size_t size, size_t offset,
|
||
bool last, struct table_meta *meta, void (*upfrag_cb)(enum PROD_VEROP_RES result, void *userdata), void *userdata);
|
||
|
||
int32_t doris_prod_version_end(struct doris_upload_ctx *ctx, void (*verend_cb)(enum PROD_VEROP_RES result, int64_t version, void *userdata), void *userdata);
|
||
int32_t doris_prod_version_cancel(struct doris_upload_ctx *ctx, void (*vercancel_cb)(enum PROD_VEROP_RES result, void *userdata), void *userdata);
|
||
|
||
#endif
|
||
|