Files
selfcare/proxy_c/rest_proxy.h
2025-03-03 11:40:37 +08:00

151 lines
3.2 KiB
C

#ifndef __REST_PROXY_H__
#define __REST_PROXY_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "restapi.h"
#include "curl_adaptor.h"
#include "rest_proxy_conf.h"
#define HTTP_OK 200
#define SERVER_PORT 4949
#define WAIT_TIMER 500 //5seconds
// #define RESTPROXY_MISISDN_LEN 24
#define MAX_THREADS 1024//256
#define THREAD_INVALID_INDEX 0xFFFF
typedef enum _STATE
{
ST_SEND_QUERY_SUBSID = 1,
ST_SEND_QUERY,
ST_SEND_TOPUP,
ST_SEND_TOPUP_SUBSCRIBID,
ST_SEND_TRANS_SUBSID_SENDER,
ST_SEND_TRANS_SUBSID_RECEIVER,
ST_SEND_TRANS,
ST_WAIT_RESTAPI_TRANS_SUBSID_SENDER,
ST_WAIT_RESTAPI_TRANS_SUBID_RECEIVER,
ST_WAIT_RESTAPI_TRANS,
ST_WAIT_RESTAPI,
ST_WAIT_RESTAPI_QUERY_SUBSID,
ST_WAIT_RESTAPI_TOPUP_SUBID,
}STATE;
typedef enum _STATISTICS
{
STAT_QUERY_REQ,
STAT_QUERY_RES,
STAT_QUERY_REST_SUBSID_REQ, /* 增加subscriber id请求统计 */
STAT_QUERY_REST_SUBSID_RES, /* 增加subscriber id回复统计 */
STAT_QUERY_REST_REQ,
STAT_QUERY_REST_RES,
STAT_TRANSFER_REQ,
STAT_TRANSFER_RES,
STAT_TRANSFER_REST_SUBSID_REQ_SENDER,
STAT_TRANSFER_REST_SUBSID_RES_SENDER,
STAT_TRANSFER_REST_SUBSID_REQ_RECEIVER,
STAT_TRANSFER_REST_SUBSID_RES_RECEIVER,
STAT_TRANSFER_REST_REQ,
STAT_TRANSFER_REST_RES,
STAT_TOPUP_REQ,
STAT_TOPUP_RES,
STAT_TOPUP_REST_SUBSID_REQ, /* 增加subscriber id请求统计 */
STAT_TOPUP_REST_SUBSID_RES, /* 增加subscriber id回复统计 */
STAT_TOPUP_REST_REQ,
STAT_TOPUP_REST_RES,
STAT_MAX,
}STATISTICS;
typedef struct rest_thread
{
char used;
char state;
int timer;
short ppsAppID;
short restproxyAppID;
char msisdn[RESTFUL_MSISDN_LEN];
char pin[RESTFUL_MSISDN_LEN];
char msisdn_out[RESTFUL_MSISDN_LEN];
char msisdn_in[RESTFUL_MSISDN_LEN];
u32 money;
char username[RESTFUL_USERNAME];
char password[RESTFUL_PASSWOR];
int pps_ip;
short pps_port;
SCurlAdaptor curAdaptor;
}_rest_thread;
typedef struct _s_rest_proxy_env
{
s_restproxy_conf cnf; /* rest proxy configure infor */
_rest_thread threads[MAX_THREADS]; /* handle messge from/to pps&rest */
int work_as_proxy_emulator;
int query_req_num; /* counts pps<->restproxy<->restful */
int query_res_num;
int query_rest_subscrib_req_num;
int query_rest_subscrib_res_num;
int query_rest_req_num;
int query_rest_res_num;
int trans_req_num; /* counts pps<->restproxy<->restful */
int trans_res_num;
int trans_rest_subscrib_req_num_out;
int trans_rest_subscrib_res_num_out;
int trans_rest_subscrib_req_num_in;
int trans_rest_subscrib_res_num_in;
int trans_rest_req_num;
int trans_rest_res_num;
int topup_req_num;
int topup_res_num;
int topup_rest_subscrib_req_num;
int topup_rest_subscrib_res_num;
int topup_rest_req_num;
int topup_rest_res_num;
}s_rest_proxy_env;
#define REST_PROXY_SUBSCRIBID_FLAG (g_rest_proxy_env.cnf.b_fetch_subscribid)
extern s_rest_proxy_env g_rest_proxy_env;
int rest_conf_set_emulator_flag(int flag);
int rest_proxy_init();
void rest_proxy_uninit();
int rest_proxy_fsm_main();
#ifdef __cplusplus
}
#endif
#endif /* __REST_PROXY_H__ */