Program Listing for File TileStorage.hpp

Return to documentation for file (optional/gdal/src/navtk/geospatial/TileStorage.hpp)

#pragma once

#include <deque>
#include <memory>
#include <string>

#include <navtk/geospatial/Tile.hpp>
#include <navtk/not_null.hpp>

namespace navtk {
namespace geospatial {

class TileStorage final {
public:
    explicit TileStorage(unsigned int max_size);

    void add_tile(not_null<std::shared_ptr<Tile>> tile);

    size_t get_size() const;

    bool is_stored(const std::string& filename) const;

    std::shared_ptr<Tile> get_tile(const std::string& filename) const;

private:
    mutable std::deque<std::shared_ptr<Tile>> tiles;

    TileStorage(const TileStorage&)            = delete;
    TileStorage& operator=(const TileStorage&) = delete;

    size_t max_size;
};
}  // namespace geospatial
}  // namespace navtk