doubao_chat/include_lib/net/uC-HTTPc/http-c_hooks.h

162 lines
7.7 KiB
C

/*
*********************************************************************************************************
* EXAMPLE CODE
*
* This file is provided as an example on how to use Micrium products.
*
* Please feel free to use any application code labeled as 'EXAMPLE CODE' in
* your application products. Example code may be used as is, in whole or in
* part, or may be used as a reference only. This file can be modified as
* required to meet the end-product requirements.
*
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*
* EXAMPLE
*
* HTTP CLIENT HOOK FUNCTIONS FILE
*
* Filename : http-c_hooks.h
* Version : V3.01.00
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*********************************************************************************************************
* MODULE
*********************************************************************************************************
*********************************************************************************************************
*/
#ifndef HTTPc_HOOKS_MODULE_PRESENT
#define HTTPc_HOOKS_MODULE_PRESENT
/*
*********************************************************************************************************
*********************************************************************************************************
* INCLUDE FILES
*********************************************************************************************************
*********************************************************************************************************
*/
#include "http-c.h"
/*
*********************************************************************************************************
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*********************************************************************************************************
*/
CPU_BOOLEAN HTTPcApp_ReqQueryStrHook(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
HTTPc_KEY_VAL **p_key_val);
CPU_BOOLEAN HTTPcApp_ReqHdrHook(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
HTTPc_HDR **p_hdr);
CPU_BOOLEAN HTTPcApp_ReqBodyHook(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
void **p_data,
CPU_CHAR *p_buf,
CPU_INT16U buf_len,
CPU_INT16U *p_data_len);
void HTTPcApp_RespHdrHook(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
HTTP_HDR_FIELD hdr_field,
CPU_CHAR *p_hdr_val,
CPU_INT16U val_len);
CPU_INT32U HTTPcApp_RespBodyHook(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
HTTP_CONTENT_TYPE content_type,
void *p_data,
CPU_INT16U data_len,
CPU_BOOLEAN last_chunk);
CPU_BOOLEAN HTTPcApp_FormMultipartHook(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
HTTPc_KEY_VAL_EXT *p_key_val_obj,
CPU_CHAR *p_buf,
CPU_INT16U buf_len,
CPU_INT16U *p_len_wr);
#if (HTTPc_APP_FS_MODULE_PRESENT == DEF_YES)
CPU_BOOLEAN HTTPcApp_FormMultipartFileHook(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
HTTPc_MULTIPART_FILE *p_file_obj,
CPU_CHAR *p_buf,
CPU_INT16U buf_len,
CPU_INT16U *p_len_wr);
#endif
#ifdef HTTPc_TASK_MODULE_EN
void HTTPcApp_ConnConnectCallback(HTTPc_CONN_OBJ *p_conn,
CPU_BOOLEAN open_status);
void HTTPcApp_ConnCloseCallback(HTTPc_CONN_OBJ *p_conn,
HTTPc_CONN_CLOSE_STATUS close_status,
HTTPc_ERR err);
void HTTPcApp_TransDoneCallback(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
HTTPc_RESP_OBJ *p_resp,
CPU_BOOLEAN status);
void HTTPcApp_TransErrCallback(HTTPc_CONN_OBJ *p_conn,
HTTPc_REQ_OBJ *p_req,
HTTPc_ERR err_code);
#endif
/*
*********************************************************************************************************
*********************************************************************************************************
* TRACE / DEBUG CONFIGURATION
*********************************************************************************************************
*********************************************************************************************************
*/
#ifndef TRACE_LEVEL_OFF
#define TRACE_LEVEL_OFF 0
#endif
#ifndef TRACE_LEVEL_INFO
#define TRACE_LEVEL_INFO 1
#endif
#ifndef TRACE_LEVEL_DEBUG
#define TRACE_LEVEL_DEBUG 2
#endif
#ifndef TRACE_LEVEL_DBG
#define TRACE_LEVEL_DBG 2
#endif
#define HTTPc_APP_TRACE_LEVEL TRACE_LEVEL_INFO
#define HTTPc_APP_TRACE printf
#define HTTPc_APP_TRACE_INFO(x) ((HTTPc_APP_TRACE_LEVEL >= TRACE_LEVEL_INFO) ? (void)(HTTPc_APP_TRACE x) : (void)0)
#define HTTPc_APP_TRACE_DBG(x) ((HTTPc_APP_TRACE_LEVEL >= TRACE_LEVEL_DEBUG) ? (void)(HTTPc_APP_TRACE x) : (void)0)
#define HTTPc_APP_TRACE_DEBUG(x) HTTPc_APP_TRACE_DBG(x)
/*
*********************************************************************************************************
*********************************************************************************************************
* MODULE END
*********************************************************************************************************
*********************************************************************************************************
*/
#endif /* HTTPc_HOOKS_MODULE_PRESENT */