diff options
Diffstat (limited to 'cache/include/tango_cache_client.h')
| -rw-r--r-- | cache/include/tango_cache_client.h | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/cache/include/tango_cache_client.h b/cache/include/tango_cache_client.h deleted file mode 100644 index eac19bf..0000000 --- a/cache/include/tango_cache_client.h +++ /dev/null @@ -1,175 +0,0 @@ -#ifndef __TANGO_CACHE_CLIENT_H__ -#define __TANGO_CACHE_CLIENT_H__ - -#include <event2/event.h> -#include <event.h> - -#include <tfe_future.h> -#include "tango_cache_pending.h" - -#define USER_TAG_MAX_LEN 1518 - -enum CACHE_ERR_CODE -{ - CACHE_OK=0, - CACHE_CACHE_MISS = -101, //����δ���� - CACHE_TIMEOUT = -102, //���泬ʱ - CACHE_OUTOF_MEMORY= -103,//��ǰ�ڴ�ռ�ó������ƣ��鿴MAX_USED_MEMORY_SIZE_MB�Ƿ��С���ߵ�ǰ�ϴ����ʸ����ϵ����ߵ����� - CACHE_ERR_CURL = -104, - CACHE_ERR_WIREDLB = -105, - CACHE_ERR_SOCKPAIR= -106, - CACHE_ERR_INTERNAL= -107, - CACHE_ERR_REDIS_JSON = -108, - CACHE_ERR_REDIS_CONNECT= -109, - CACHE_ERR_REDIS_EXEC = -110, - CACHE_OUTOF_SESSION = -111, - CACHE_ERR_EVBUFFER = -112, - CACHE_UPDATE_CANCELED = -113, -}; - -struct cache_statistics -{ - long long get_recv_num; //����GET�Ĵ��� - long long get_succ_http; //GET minio�ɹ��Ĵ��� - long long get_succ_redis;//GET redis�ɹ��Ĵ��� - long long get_miss_num; //GETδ���еĴ��� - long long get_err_http; //GET minioʧ�ܵĴ��� - long long get_err_redis; //GET redisʧ�ܵĴ��� - long long put_recv_num; //����UPLOAD�Ĵ��� - long long put_succ_http; //UPLOAD minio�ɹ��Ĵ��� - long long put_succ_redis;//UPLOAD redis�ɹ��Ĵ��� - long long put_err_http; //UPLOAD minioʧ�ܵĴ��� - long long put_err_redis; //UPLOAD redisʧ�ܵĴ��� - long long del_recv_num; //����DELETE�Ĵ��� - long long del_succ_num; //DELETE�ɹ��Ĵ��� - long long del_error_num; //DELETEʧ�ܵĴ��� - long long totaldrop_num; //�ڴ����Լ�WiredLB����ʱDROP�Ĵ��� - long long memory_used; //��ǰUPLOAD BODY��ռ�ڴ��С - long long session_http; //��ǰ���ڽ���GET/PUT��HTTP�Ự�� - long long session_redis; //��ǰ���ڽ���GET/PUT��redis�Ự�� -}; - - -struct tango_cache_parameter; -struct tango_cache_instance; -struct tango_cache_ctx; - -enum CACHE_ERR_CODE tango_cache_get_last_error(const struct tango_cache_ctx *ctx); -enum CACHE_ERR_CODE tango_cache_ctx_error(const struct tango_cache_instance *instance); -void tango_cache_get_statistics(const struct tango_cache_instance *instance, struct cache_statistics *out); - -/*ÿ������ִ��һ�γ�ʼ��*/ -void tango_cache_global_init(void); - -//ÿ��minio��Ⱥ��bucket����һ��parameter�����instance�ɹ���һ��parameter -struct tango_cache_parameter *tango_cache_parameter_new(const char* profile_path, const char* section, void *runtimelog); -/*��������API�̲߳���ȫ*/ -//ÿ�������̴߳���һ��instance -struct tango_cache_instance *tango_cache_instance_new(struct tango_cache_parameter *param, struct event_base* evbase, void *runtimelog); - - -/****************************************** GET�ӿڵ�API ******************************************/ -enum CACHE_RESULT_TYPE -{ - RESULT_TYPE_HEADER=0, //���ֻ����һ�� - RESULT_TYPE_USERTAG, //���ֻ����һ�� - RESULT_TYPE_BODY, //���ܵ��ö�� - RESULT_TYPE_END, //ȫ��������ֻ����һ�Σ����������� - RESULT_TYPE_MISS, //����δ���У����������ͻ��⣬ֻ����һ��(��END֮��)������������ -}; - -enum OBJECT_LOCATION -{ - OBJECT_IN_UNKNOWN=0, - OBJECT_IN_HOS, - OBJECT_IN_REDIS -}; - -struct tango_cache_meta_get -{ - const char* url; //����:URL���ǽṹ����־:�ļ�·������CACHE_OBJECT_KEY_HASH_SWITCH=0ʱ���256�ֽڣ�=1ʱ������ - struct request_freshness get; -}; - -//promise_success�Ľ��result -struct tango_cache_result -{ - const char *data_frag; //���typeΪRESULT_TYPE_HEADER��ÿ��ͷ��������һ������(HTTP1.1��ʽ) - size_t size; - size_t tlength; //������ܳ��ȣ��ص�ʱ����Ч - enum CACHE_RESULT_TYPE type; - enum OBJECT_LOCATION location; -}; - -//�ɹ�ʱ�ص�promise_success -//ʧ��ʱ�ص�promise_failed(��һ��)��ʹ��get_last_error��ȡ�����룻 -//future������ΪNULL -int tango_cache_fetch_object(struct tango_cache_instance *instance, struct future* f, struct tango_cache_meta_get *meta, enum OBJECT_LOCATION where_to_get); -int tango_cache_head_object(struct tango_cache_instance *instance, struct future* f, struct tango_cache_meta_get *meta); -//��promise_success��result������ȡ��� -struct tango_cache_result *tango_cache_read_result(future_result_t *promise_result); - - -/****************************************** DELETE�ӿڵ�API ******************************************/ -int tango_cache_delete_object(struct tango_cache_instance *instance, struct future* f, const char *objkey, const char *minio_addr=NULL, const char *bucket=NULL); - - -/****************************************** UPLOAD�ӿڵ�API ******************************************/ -/* ע��: ��future��ΪNULL�������ϴ�����ʱ�����֪ͨ�ص������������ã�*/ - -enum PUT_MEMORY_COPY_WAY -{ - PUT_MEM_COPY=0, //��������ڴ� - PUT_MEM_FREE, //�������ڴ棬��������ɱ�����ģ���ͷŸ��ڴ� -}; -enum EVBUFFER_COPY_WAY -{ - EVBUFFER_MOVE=0,//evbuffer_add_buffer - EVBUFFER_COPY, //evbuffer_add_buffer_reference -}; - -enum CACHE_HTTP_HDR_TYPE -{ - HDR_CONTENT_TYPE=0, - HDR_CONTENT_ENCODING, - HDR_CONTENT_DISPOSITION, - HDR_CONTENT_MD5, - - HDR_CONTENT_NUM, -}; - -struct tango_cache_meta_put -{ - const char* url; - const char* std_hdr[HDR_CONTENT_NUM]; //����ͷ������"Content-Type: text/html"����Ҫ�������У�NULL��ʾû�и�ͷ���� - const char* usertag; //�������������ݣ�GETʱ��ԭ������ - size_t usertag_len; //���USER_TAG_MAX_LEN��0��ʾû�и�ͷ�� - size_t user_log_name; - struct response_freshness put; -}; - -/****************************************** ����һ��UPLOAD�ӿڵ�API ******************************************/ -//��path��Ϊ�գ����������Ĵ洢·�� -//����ֵ: 0-�ɹ���<0ʧ�ܣ���ͬ -int tango_cache_upload_once_data(struct tango_cache_instance *instance, struct future* f, - enum PUT_MEMORY_COPY_WAY way, const char *data, size_t size, - struct tango_cache_meta_put *meta, - char *path/*OUT*/, size_t pathsize); -int tango_cache_upload_once_evbuf(struct tango_cache_instance *instance, struct future* f, - enum EVBUFFER_COPY_WAY way, struct evbuffer *evbuf, - struct tango_cache_meta_put *meta, - char *path/*OUT*/, size_t pathsize); - -/****************************************** ��ʽUPLOAD�ӿڵ�API ******************************************/ -//����ֵ: ��ΪNULL���ʾ����ʧ�ܣ�����tango_cache_ctx_error�鿴�������Ƿ���CACHE_OUTOF_MEMORY(�����������)�� -struct tango_cache_ctx *tango_cache_update_start(struct tango_cache_instance *instance, struct future* f, struct tango_cache_meta_put *meta); -//����ֵ: 0-�ɹ���<0ʧ�ܣ�����tango_cache_get_last_error�鿴�����룻 -int tango_cache_update_frag_data(struct tango_cache_ctx *ctx, const char *data, size_t size); -int tango_cache_update_frag_evbuf(struct tango_cache_ctx *ctx, enum EVBUFFER_COPY_WAY way, struct evbuffer *evbuf); -//ע��: ����ʧ��ʱ���ٵ���promise�ص�������path��ΪNULLʱ���ش洢·�� -int tango_cache_update_end(struct tango_cache_ctx *ctx, char *path/*OUT*/, size_t pathsize); -//����cancel���������ص�����������ʧ�� -void tango_cache_update_cancel(struct tango_cache_ctx *ctx); - -#endif - |
