Initial import of NFC GNSS SDK project
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
/******************************************************************************************************************************
|
||||
* MODULE IMPLEMENTATION FILE
|
||||
******************************************************************************************************************************
|
||||
* COPYRIGHT (C) 2019 ASR Corporation.
|
||||
*
|
||||
* This file and the software in it is furnished under
|
||||
* license and may only be used or copied in accordance with the terms of the
|
||||
* license. The information in this file is furnished for informational use
|
||||
* only, is subject to change without notice, and should not be construed as
|
||||
* a commitment by ASR Corporation. ASR Corporation assumes no
|
||||
* responsibility or liability for any errors or inaccuracies that may appear
|
||||
* in this document or any software that may be provided in association with
|
||||
* this document.
|
||||
* Except as permitted by such license, no part of this document may be
|
||||
* reproduced, stored in a retrieval system, or transmitted in any form or by
|
||||
* any means without the express written consent of ASR Corporation.
|
||||
*
|
||||
* Title: HTTP Package HTTP API
|
||||
*
|
||||
* Filename: libhttpclient.h
|
||||
* Target, subsystem: Common Platform, HAL
|
||||
*
|
||||
* Authors: Roy Shi
|
||||
*
|
||||
* Description: This file includes all the API that the http Package support
|
||||
*
|
||||
* Last Modified: <Initial> <date>
|
||||
*
|
||||
* Notes:
|
||||
*********************************************************************************************************************************/
|
||||
#ifndef __LIBHTTPCLIENT_H__
|
||||
#define __LIBHTTPCLIENT_H__
|
||||
|
||||
#include "quec_cust_feature.h"
|
||||
/*
|
||||
buffer: the buffer is received http context data
|
||||
size: the length of http context data
|
||||
nitems: the http response header "Content-Length" value
|
||||
private_data: user private data
|
||||
*/
|
||||
typedef int (*client_response_cb)(char *buffer, int size, int nitems, void *private_data);
|
||||
typedef void http_client;
|
||||
|
||||
//#define HTTP_CLIENT_ERROR -1
|
||||
//#define HTTP_CLIENT_OK 0
|
||||
|
||||
#define HTTPCLIENT_MEM_SIZE 2560
|
||||
|
||||
enum {
|
||||
HTTPCLIENT_OPT_URL,
|
||||
HTTPCLIENT_OPT_METHOD,
|
||||
HTTPCLIENT_OPT_HTTP1_0,
|
||||
HTTPCLIENT_OPT_HTTPHEADER,
|
||||
HTTPCLIENT_OPT_POSTDATA,
|
||||
HTTPCLIENT_OPT_POSTLENGTH,
|
||||
HTTPCLIENT_OPT_RESPONSECB,
|
||||
HTTPCLIENT_OPT_RESPONSECB_DATA,
|
||||
HTTPCLIENT_OPT_AUTH_TYPE,
|
||||
HTTPCLIENT_OPT_AUTH_USERNAME,
|
||||
HTTPCLIENT_OPT_AUTH_PASSWORD,
|
||||
HTTPCLIENT_OPT_PDP_CID,
|
||||
HTTPCLIENT_OPT_BIND_PORT,
|
||||
#ifdef QUEC_FOTA_BREAK_POINT_DOWN_LOAD_CACHE_FEATURE
|
||||
HTTPCLIENT_QUEC_MINISYS_OFFSET,
|
||||
HTTPCLIENT_QUEC_MINISYS_REQSIZE,
|
||||
HTTPCLIENT_QUEC_MINISYS_BP_ENABLE,
|
||||
HTTPCLIENT_QUEC_MINISYS_CACHE_ENABLE,
|
||||
#endif
|
||||
HTTPCLIENT_OPT_DNS_TYPE,
|
||||
HTTPCLIENT_OPT_PROXY_ENABLE,
|
||||
HTTPCLIENT_OPT_PROXY_URL,
|
||||
HTTPCLIENT_OPT_RECV_TIMEOUT,
|
||||
HTTPCLIENT_OPT_NOSACK,
|
||||
HTTPCLIENT_OPT_NOSCALE,
|
||||
};
|
||||
|
||||
enum {
|
||||
HTTPCLIENT_GETINFO_RESPONSE_CODE,
|
||||
HTTPCLIENT_GETINFO_TCP_STATE,
|
||||
};
|
||||
|
||||
enum {
|
||||
HTTPCLIENT_REQUEST_GET,
|
||||
HTTPCLIENT_REQUEST_POST,
|
||||
HTTPCLIENT_REQUEST_PUT,
|
||||
HTTPCLIENT_REQUEST_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
HTTP_AUTH_TYPE_BASE = 1,
|
||||
HTTP_AUTH_TYPE_DIGEST
|
||||
};
|
||||
|
||||
enum {
|
||||
HTTP_TCP_NOT_ESTABLISHED = 0,
|
||||
HTTP_TCP_ESTABLISHED
|
||||
};
|
||||
|
||||
enum {
|
||||
HTTP_CLIENT_ERROR = -1,
|
||||
HTTP_CLIENT_OK = 0,
|
||||
HTTP_CLIENT_BAD_SOCKET_ID,
|
||||
HTTP_CLIENT_NO_MEMORY,
|
||||
HTTP_CLIENT_BAD_HTTP_REQUEST,
|
||||
HTTP_CLIENT_SEND_FAILED,
|
||||
HTTP_CLIENT_RECV_FAILED,
|
||||
HTTP_CLIENT_HEADER_SIZE_TOO_LARGE,
|
||||
HTTP_CLIENT_GET_INVALID_HEADER,
|
||||
HTTP_CLIENT_PROCESS_HEADER_FAILED,
|
||||
HTTP_CLIENT_CALLBACK_FAILED,
|
||||
HTTP_CLIENT_CREATE_SOCKET_FAILED,
|
||||
HTTP_CLIENT_INVALID_LOCATION,
|
||||
HTTP_CLIENT_ACTIVE_STOP,
|
||||
HTTP_CLIENT_DNS_QUERY_FAILED,
|
||||
};
|
||||
|
||||
enum {
|
||||
HTTP_DNS_TYPE_IPV4IPV6 = 0,
|
||||
HTTP_DNS_TYPE_IPV6IPV4,
|
||||
HTTP_DNS_TYPE_IPV4,
|
||||
HTTP_DNS_TYPE_IPV6
|
||||
};
|
||||
|
||||
struct http_client_list {
|
||||
char * data;
|
||||
struct http_client_list * next;
|
||||
};
|
||||
|
||||
extern struct http_client * http_client_init(void);
|
||||
|
||||
extern void http_client_shutdown(struct http_client *);
|
||||
|
||||
extern struct http_client_list * http_client_list_append(struct http_client_list *, const char *);
|
||||
|
||||
extern void http_client_list_destroy(struct http_client_list *);
|
||||
|
||||
extern int http_client_setopt(struct http_client *, int, ...);
|
||||
|
||||
extern int http_client_perform(struct http_client *);
|
||||
|
||||
extern int http_client_getinfo(struct http_client *, int, void *);
|
||||
|
||||
extern void http_client_stop(struct http_client * client);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user