diff options
Diffstat (limited to 'src/mbgl/tile/image_tile_source.cpp')
-rw-r--r-- | src/mbgl/tile/image_tile_source.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mbgl/tile/image_tile_source.cpp b/src/mbgl/tile/image_tile_source.cpp new file mode 100644 index 0000000000..e552c0e315 --- /dev/null +++ b/src/mbgl/tile/image_tile_source.cpp @@ -0,0 +1,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 |