1 #if !defined(_REQUESTGATEWAY_H_) 2 #define _REQUESTGATEWAY_H_ 7 #include "NetworkManager.h" 8 #include "RequestExecutor.h" 9 #include "RequestClient.h" 20 static bool UnitTest();
22 friend THREAD_RET THREAD_FUNCTION_CALL RequestGatewayExecRun(THREAD_ARG arg);
23 friend THREAD_RET THREAD_FUNCTION_CALL RequestGatewayClientRun(THREAD_ARG arg);
28 bool init(
const char* sslCertPath = NULL,
const char* sslKeyPath = NULL);
30 bool setWebServerInfo(
const char* name,
const char* rootdir,
const char* indexfile);
31 bool setExternalAPILabel(
const char* label);
32 bool setInternalAPILabel(
const char* label);
33 bool setCacheFiles(
bool cache);
34 bool setResponseType(
const char* type);
35 bool setLongRequestLimit(uint32 limit);
36 bool setExecutorHeartbeatTimeout(uint32 timeout);
37 bool setQueuingParameters(uint32 maxRequestQueueSize, uint32 maxRequestProcessingSize, uint32 priorityThreshold);
39 bool addPort(uint16 port, uint8 encryption,
bool enableHTTP =
false, uint32 timeout = 3000);
40 bool addGateway(uint32
id, std::string addr, uint16 port);
41 bool addAuthUser(
const char* user,
const char* password);
54 bool sendRestartToExecutor(uint64
id);
55 bool distributeDeadExecutorRequests(std::list<RequestReply*>& shortQueue, std::list<RequestReply*>& longQueue);
57 uint64 getBestExecutorID(std::string requestString, uint32 reqSize,
bool& isLongReq);
61 bool addToRequestQueue(
DataMessage* msg, uint64 origin, uint64 conID, uint64 clientRef);
66 std::map<uint64,RequestConnection> executors;
67 std::map<uint64,RequestConnection> clients;
68 std::map<uint64,RequestConnection> webClients;
71 std::map<uint64,RequestReply*> requestMap;
72 std::vector<std::string> longReqNames;
73 std::map<std::string, uint64> httpAuth;
77 uint64 systemStartTime;
78 uint32 threadIDClient;
80 uint64 clientSentCount;
81 uint64 clientReceivedCount;
83 uint64 execReceivedCount;
88 uint32 executorHeartbeatTimeout;
89 uint32 maxRequestQueueSize;
90 uint32 maxRequestProcessingSize;
91 uint32 priorityThreshold;
96 std::string webServerName;
98 std::string indexFilename;
99 std::string versionString;
101 std::string internalAPITitle;
102 std::string externalAPITitle;
114 THREAD_RET THREAD_FUNCTION_CALL RequestGatewayExecRun(THREAD_ARG arg);
115 THREAD_RET THREAD_FUNCTION_CALL RequestGatewayClientRun(THREAD_ARG arg);
119 #endif // _REQUESTGATEWAY_H_ Definition: NetworkManager.h:47
Definition: NetworkManager.h:136
Definition: ThreadManager.h:33
Definition: MovingAverage.h:14
Definition: NetworkManager.h:25
Definition: NetworkProtocols.h:81
Definition: NetworkManager.h:12
Definition: RequestGateway.h:18
Definition: RequestClient.h:21
Definition: DataMessage.h:95