summaryrefslogtreecommitdiff
path: root/include/doris_client.h
blob: 08f3884e5aa81643d32336e620d0a99436694ea5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef __DORIS_CLIENT_H__
#define __DORIS_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_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; //��ǰ�ѻ�ȡ��ϵ����°汾�ţ���������һ���汾ȡ����
	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_instance;
struct doris_callbacks
{
	void *userdata;
	void (*version_start)(struct doris_instance *instance, cJSON *meta, void *userdata); //meta�������汾���������ڶ���Ч
	void (*cfgfile_start)(struct doris_instance *instance, const struct tablemeta *meta, const char *unused, void *userdata);
	void (*cfgfile_update)(struct doris_instance *instance, const char *data, size_t len, void *userdata);
	void (*cfgfile_finish)(struct doris_instance *instance, const char *md5, void *userdata);
	void (*version_error)(struct doris_instance *instance, void *userdata); //�����ļ�ʧ�ܣ��ð汾��Ҫ�ع�
	void (*version_finish)(struct doris_instance *instance, void *userdata);
};

struct doris_parameter *doris_parameter_new(const char *confile, struct event_base *manage_evbase, void *runtimelog);
struct doris_instance *doris_instance_new(struct doris_parameter *param, struct event_base *worker_evbase,
	struct doris_callbacks *cbs, struct doris_arguments *args, void *runtimelog);

#endif