35 static std::shared_ptr<RequestManager> mReqeustManagerInstance;
36 static std::mutex instanceProtectionLock;
38 int64_t mActiveRequestCount;
39 std::unordered_set<Request*> mRequestsList[4];
40 std::unordered_map<int64_t, Request*> mActiveRequests;
41 std::unordered_map<int64_t, int64_t> mRequestProcessingStatus;
42 std::shared_timed_mutex mRequestMapMutex;
47 int8_t isSane(
Request* request);
48 int8_t requestMatch(
Request* request);
113 void modifyRequestDuration(int64_t handle, int64_t duration);
115 void markRequestAsComplete(int64_t handle);
117 int64_t getRequestProcessingStatus(int64_t handle);
119 std::vector<Request*> getPendingList();
134 static std::shared_ptr<RequestManager> getInstance() {
135 if(mReqeustManagerInstance ==
nullptr) {
136 instanceProtectionLock.lock();
137 if(mReqeustManagerInstance ==
nullptr) {
139 mReqeustManagerInstance = std::shared_ptr<RequestManager> (
new RequestManager());
140 }
catch(
const std::bad_alloc& e) {
141 instanceProtectionLock.unlock();
145 instanceProtectionLock.unlock();
147 return mReqeustManagerInstance;