summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src/request_info.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/src/request_info.cc')
-rw-r--r--src/components/application_manager/src/request_info.cc39
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() {