summaryrefslogtreecommitdiff
path: root/src/mbgl/storage/http_context_base.cpp
blob: 8b09fc4dc2d4678faa5d55349b0057b4d4c33aa5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <mbgl/storage/http_context_base.hpp>

namespace mbgl {

HTTPContextBase::HTTPContextBase(uv_loop_t* loop_)
    : reachability(loop_, [this] { retryRequests(); }) {
    NetworkStatus::Subscribe(reachability.get());
    reachability.unref();
}

HTTPContextBase::~HTTPContextBase() {
    assert(requests.empty());
    NetworkStatus::Unsubscribe(reachability.get());
}

void HTTPContextBase::addRequest(HTTPRequestBase* request) {
    requests.insert(request);
}

void HTTPContextBase::removeRequest(HTTPRequestBase* request) {
    requests.erase(request);
}

void HTTPContextBase::retryRequests() {
    for (auto request : requests) {
        request->retry();
    }
}

}