From d62baffb1b73b0dd135c253e0a52565fcc33f2ec Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 6 Jun 2016 17:26:56 -0700 Subject: [PATCH] [core] Merge AnnotationTileSource into AnnotationTileData --- src/mbgl/annotation/annotation_manager.cpp | 16 ++++++------- src/mbgl/annotation/annotation_manager.hpp | 8 +++---- src/mbgl/tile/annotation_tile_data.cpp | 15 +++++++------ src/mbgl/tile/annotation_tile_data.hpp | 4 ++-- src/mbgl/tile/annotation_tile_source.cpp | 24 -------------------- src/mbgl/tile/annotation_tile_source.hpp | 26 ---------------------- 6 files changed, 22 insertions(+), 71 deletions(-) delete mode 100644 src/mbgl/tile/annotation_tile_source.cpp delete mode 100644 src/mbgl/tile/annotation_tile_source.hpp diff --git a/src/mbgl/annotation/annotation_manager.cpp b/src/mbgl/annotation/annotation_manager.cpp index 22cdf313b..f52cf860c 100644 --- a/src/mbgl/annotation/annotation_manager.cpp +++ b/src/mbgl/annotation/annotation_manager.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include @@ -135,18 +135,18 @@ void AnnotationManager::updateStyle(Style& style) { obsoleteShapeAnnotationLayers.clear(); - for (auto& monitor : monitors) { - monitor->update(getTile(monitor->tileID.canonical)); + for (auto& data : monitors) { + data->setData(getTile(data->id.canonical), {}, {}); } } -void AnnotationManager::addTileSource(AnnotationTileSource& monitor) { - monitors.insert(&monitor); - monitor.update(getTile(monitor.tileID.canonical)); +void AnnotationManager::addTileData(AnnotationTileData& data) { + monitors.insert(&data); + data.setData(getTile(data.id.canonical), {}, {}); } -void AnnotationManager::removeTileSource(AnnotationTileSource& monitor) { - monitors.erase(&monitor); +void AnnotationManager::removeTileData(AnnotationTileData& data) { + monitors.erase(&data); } void AnnotationManager::addIcon(const std::string& name, std::shared_ptr sprite) { diff --git a/src/mbgl/annotation/annotation_manager.hpp b/src/mbgl/annotation/annotation_manager.hpp index 6f2700ab7..228536612 100644 --- a/src/mbgl/annotation/annotation_manager.hpp +++ b/src/mbgl/annotation/annotation_manager.hpp @@ -15,7 +15,7 @@ namespace mbgl { class AnnotationTile; -class AnnotationTileSource; +class AnnotationTileData; class SymbolAnnotationImpl; class ShapeAnnotationImpl; @@ -41,8 +41,8 @@ public: void updateStyle(style::Style&); - void addTileSource(AnnotationTileSource&); - void removeTileSource(AnnotationTileSource&); + void addTileData(AnnotationTileData&); + void removeTileData(AnnotationTileData&); static const std::string SourceID; static const std::string PointLayerID; @@ -65,7 +65,7 @@ private: SymbolAnnotationMap symbolAnnotations; ShapeAnnotationMap shapeAnnotations; std::vector obsoleteShapeAnnotationLayers; - std::set monitors; + std::set monitors; SpriteStore spriteStore; SpriteAtlas spriteAtlas; diff --git a/src/mbgl/tile/annotation_tile_data.cpp b/src/mbgl/tile/annotation_tile_data.cpp index 1c24d8345..c6fed3ff5 100644 --- a/src/mbgl/tile/annotation_tile_data.cpp +++ b/src/mbgl/tile/annotation_tile_data.cpp @@ -1,20 +1,21 @@ #include -#include #include +#include namespace mbgl { AnnotationTileData::AnnotationTileData(const OverscaledTileID& overscaledTileID, std::string sourceID, const style::UpdateParameters& parameters) - : GeometryTileData(overscaledTileID, sourceID, parameters.style, parameters.mode) { - tileSource = std::make_unique(*this, overscaledTileID, parameters.annotationManager); + : GeometryTileData(overscaledTileID, sourceID, parameters.style, parameters.mode), + annotationManager(parameters.annotationManager) { + annotationManager.addTileData(*this); } -AnnotationTileData::~AnnotationTileData() = default; - -void AnnotationTileData::setNecessity(Necessity necessity) { - tileSource->setNecessity(static_cast(necessity)); +AnnotationTileData::~AnnotationTileData() { + annotationManager.removeTileData(*this); } +void AnnotationTileData::setNecessity(Necessity) {} + } // namespace mbgl diff --git a/src/mbgl/tile/annotation_tile_data.hpp b/src/mbgl/tile/annotation_tile_data.hpp index 7995091a2..c999cba16 100644 --- a/src/mbgl/tile/annotation_tile_data.hpp +++ b/src/mbgl/tile/annotation_tile_data.hpp @@ -4,7 +4,7 @@ namespace mbgl { -class TileSource; +class AnnotationManager; namespace style { class UpdateParameters; @@ -20,7 +20,7 @@ public: void setNecessity(Necessity) final; private: - std::unique_ptr tileSource; + AnnotationManager& annotationManager; }; } // namespace mbgl diff --git a/src/mbgl/tile/annotation_tile_source.cpp b/src/mbgl/tile/annotation_tile_source.cpp deleted file mode 100644 index 1d638d18f..000000000 --- a/src/mbgl/tile/annotation_tile_source.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include -#include -#include - -namespace mbgl { - -AnnotationTileSource::AnnotationTileSource(GeometryTileData& tileData_, - const OverscaledTileID& tileID_, - AnnotationManager& annotationManager_) - : GeometryTileSource(tileData_), tileID(tileID_), annotationManager(annotationManager_) { - annotationManager.addTileSource(*this); -} - -AnnotationTileSource::~AnnotationTileSource() { - annotationManager.removeTileSource(*this); -} - -void AnnotationTileSource::update(std::unique_ptr tile) { - tileData.setData(std::move(tile), {}, {}); -} - -} // namespace mbgl diff --git a/src/mbgl/tile/annotation_tile_source.hpp b/src/mbgl/tile/annotation_tile_source.hpp deleted file mode 100644 index c06ee4a37..000000000 --- a/src/mbgl/tile/annotation_tile_source.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once - -#include -#include - -#include - -namespace mbgl { - -class AnnotationManager; -class GeometryTile; - -class AnnotationTileSource final : public GeometryTileSource { -public: - AnnotationTileSource(GeometryTileData&, const OverscaledTileID&, AnnotationManager&); - ~AnnotationTileSource(); - - void update(std::unique_ptr); - - OverscaledTileID tileID; - -private: - AnnotationManager& annotationManager; -}; - -} // namespace mbgl