File indexing completed on 2024-12-08 07:19:11

0001 /*
0002     SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "requestcontext_p.h"
0008 
0009 using namespace KPublicTransport;
0010 
0011 RequestContext::RequestContext() = default;
0012 RequestContext::~RequestContext() = default;
0013 
0014 bool RequestContext::operator==(const RequestContext &other) const
0015 {
0016     return backend == other.backend
0017         && type == other.type
0018         && dateTime == other.dateTime
0019         && backendData == other.backendData;
0020 }
0021 
0022 bool RequestContext::operator<(const AbstractBackend *other) const
0023 {
0024     return backend < other;
0025 }
0026 
0027 void RequestContext::purgeLoops(std::vector<RequestContext> &contexts, const std::vector<RequestContext> &baseContexts)
0028 {
0029     for (auto it = contexts.begin(); it != contexts.end();) {
0030         const auto baseIt = std::lower_bound(baseContexts.begin(), baseContexts.end(), (*it).backend);
0031         if (baseIt != baseContexts.end() && (*baseIt) == (*it)) {
0032             it = contexts.erase(it);
0033         } else {
0034             ++it;
0035         }
0036     }
0037 }