diff options
Diffstat (limited to 'src/components/application_manager/src/request_info.cc')
-rw-r--r-- | src/components/application_manager/src/request_info.cc | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/src/components/application_manager/src/request_info.cc b/src/components/application_manager/src/request_info.cc index e1fffdf6fe..60d00b65de 100644 --- a/src/components/application_manager/src/request_info.cc +++ b/src/components/application_manager/src/request_info.cc @@ -42,12 +42,12 @@ namespace request_controller { SDL_CREATE_LOG_VARIABLE("RequestController") -uint32_t RequestInfo::HmiConnectionKey = 0; +constexpr uint32_t RequestInfo::kHmiConnectionKey; HMIRequestInfo::HMIRequestInfo(RequestPtr request, const uint64_t timeout_msec) : RequestInfo(request, HMIRequest, timeout_msec) { correlation_id_ = request_->correlation_id(); - app_id_ = RequestInfo::HmiConnectionKey; + app_id_ = RequestInfo::kHmiConnectionKey; } HMIRequestInfo::HMIRequestInfo(RequestPtr request, @@ -55,7 +55,7 @@ HMIRequestInfo::HMIRequestInfo(RequestPtr request, const uint64_t timeout_msec) : RequestInfo(request, HMIRequest, start_time, timeout_msec) { correlation_id_ = request_->correlation_id(); - app_id_ = RequestInfo::HmiConnectionKey; + app_id_ = RequestInfo::kHmiConnectionKey; } MobileRequestInfo::MobileRequestInfo(RequestPtr request, @@ -92,6 +92,7 @@ void application_manager::request_controller::RequestInfo::updateEndTime() { void RequestInfo::updateTimeOut(const uint64_t& timeout_msec) { timeout_msec_ = timeout_msec; updateEndTime(); + request_->OnUpdateTimeOut(); } bool RequestInfo::isExpired() { @@ -132,13 +133,13 @@ bool RequestInfoSet::Add(RequestInfoPtr request_info) { << request_info->requestId()); sync_primitives::AutoLock lock(pending_requests_lock_); CheckSetSizes(); - const std::pair<HashSortedRequestInfoSet::iterator, bool>& insert_resilt = + const std::pair<HashSortedRequestInfoSet::iterator, bool>& insert_result = hash_sorted_pending_requests_.insert(request_info); - if (insert_resilt.second == true) { - const std::pair<TimeSortedRequestInfoSet::iterator, bool>& insert_resilt = + if (insert_result.second == true) { + const std::pair<TimeSortedRequestInfoSet::iterator, bool>& insert_result = time_sorted_pending_requests_.insert(request_info); - DCHECK(insert_resilt.second); - if (!insert_resilt.second) { + DCHECK(insert_result.second); + if (!insert_result.second) { return false; } CheckSetSizes(); @@ -153,7 +154,7 @@ bool RequestInfoSet::Add(RequestInfoPtr request_info) { } RequestInfoPtr RequestInfoSet::Find(const uint32_t connection_key, - const uint32_t correlation_id) { + const uint32_t correlation_id) const { RequestInfoPtr result; // Request info for searching in request info set by log_n time @@ -197,6 +198,22 @@ RequestInfoPtr RequestInfoSet::FrontWithNotNullTimeout() { return result; } +std::list<RequestInfoPtr> RequestInfoSet::GetRequestsByConnectionKey( + const uint32_t connection_key) { + SDL_LOG_AUTO_TRACE(); + sync_primitives::AutoLock lock(pending_requests_lock_); + + std::list<RequestInfoPtr> output_list; + AppIdCompararator comparator(AppIdCompararator::Equal, connection_key); + + std::copy_if(hash_sorted_pending_requests_.begin(), + hash_sorted_pending_requests_.end(), + std::back_inserter(output_list), + comparator); + + return output_list; +} + bool RequestInfoSet::Erase(const RequestInfoPtr request_info) { DCHECK(request_info); if (!request_info) { @@ -244,7 +261,7 @@ uint32_t RequestInfoSet::RemoveRequests( HashSortedRequestInfoSet::iterator to_erase = it++; Erase(*to_erase); it = std::find_if(it, hash_sorted_pending_requests_.end(), filter); - erased++; + ++erased; } CheckSetSizes(); return erased; @@ -259,7 +276,7 @@ uint32_t RequestInfoSet::RemoveByConnectionKey(uint32_t connection_key) { uint32_t RequestInfoSet::RemoveMobileRequests() { SDL_LOG_AUTO_TRACE(); return RemoveRequests(AppIdCompararator(AppIdCompararator::NotEqual, - RequestInfo::HmiConnectionKey)); + RequestInfo::kHmiConnectionKey)); } const size_t RequestInfoSet::Size() { |