summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/image_tile_source.cpp
blob: e552c0e31596f47c73b42ed0afeba0ec89cc1361 (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
#include <mbgl/tile/image_tile_source.hpp>
#include <mbgl/tile/raster_tile_data.hpp>
#include <mbgl/storage/file_source.hpp>

namespace mbgl {

ImageTileSource::ImageTileSource(RasterTileData& tileData_,
                                 const Resource& resource_,
                                 FileSource& fileSource_)
    : RasterTileSource(tileData_), resource(resource_), fileSource(fileSource_) {
    request = fileSource.request(resource, [this](Response res) {
        if (res.error) {
            tileData.setData(std::make_exception_ptr(std::runtime_error(res.error->message)),
                             nullptr, res.modified, res.expires);
        } else if (res.notModified) {
            return;
        } else if (res.noContent) {
            tileData.setData(nullptr, nullptr, res.modified, res.expires);
        } else {
            tileData.setData(nullptr, res.data, res.modified, res.expires);
        }
    });
}

} // namespace mbgl