From 280b80677797ceda07ddf75f567dd3613f285319 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Wed, 18 Mar 2020 16:46:24 +0200 Subject: [core] Move generic setProperty() parts to the base Layer class --- include/mbgl/gl/custom_layer.hpp | 16 ++++++---------- include/mbgl/style/layer.hpp | 9 ++++++--- include/mbgl/style/layers/background_layer.hpp | 12 ++++++------ include/mbgl/style/layers/circle_layer.hpp | 12 ++++++------ include/mbgl/style/layers/fill_extrusion_layer.hpp | 12 ++++++------ include/mbgl/style/layers/fill_layer.hpp | 12 ++++++------ include/mbgl/style/layers/heatmap_layer.hpp | 12 ++++++------ include/mbgl/style/layers/hillshade_layer.hpp | 12 ++++++------ include/mbgl/style/layers/layer.hpp.ejs | 12 ++++++------ include/mbgl/style/layers/line_layer.hpp | 12 ++++++------ include/mbgl/style/layers/raster_layer.hpp | 12 ++++++------ include/mbgl/style/layers/symbol_layer.hpp | 12 ++++++------ 12 files changed, 72 insertions(+), 73 deletions(-) (limited to 'include') diff --git a/include/mbgl/gl/custom_layer.hpp b/include/mbgl/gl/custom_layer.hpp index 5dce484980..8b60af5d7f 100644 --- a/include/mbgl/gl/custom_layer.hpp +++ b/include/mbgl/gl/custom_layer.hpp @@ -66,21 +66,17 @@ public: CustomLayer(const std::string& id, std::unique_ptr host); + CustomLayer(const CustomLayer&) = delete; ~CustomLayer() final; - - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - StyleProperty getProperty(const std::string&) const final; - // Private implementation - class Impl; const Impl& impl() const; - Mutable mutableImpl() const; - std::unique_ptr cloneRef(const std::string& id) const final; - - CustomLayer(const CustomLayer&) = delete; +private: + optional setPropertyInternal(const std::string& name, + const conversion::Convertible& value) final; + StyleProperty getProperty(const std::string&) const final; + std::unique_ptr cloneRef(const std::string& id) const final; Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layer.hpp b/include/mbgl/style/layer.hpp index 204cb9c697..10baf19607 100644 --- a/include/mbgl/style/layer.hpp +++ b/include/mbgl/style/layer.hpp @@ -110,8 +110,7 @@ public: void setMaxZoom(float); // Dynamic properties - virtual optional setProperty(const std::string& name, const conversion::Convertible& value) = 0; - optional setVisibility(const conversion::Convertible& value); + optional setProperty(const std::string& name, const conversion::Convertible& value); virtual StyleProperty getProperty(const std::string&) const = 0; virtual Value serialize() const; @@ -142,9 +141,13 @@ public: protected: virtual Mutable mutableBaseImpl() const = 0; void serializeProperty(Value&, const StyleProperty&, const char* propertyName, bool isPaint) const; - + virtual optional setPropertyInternal(const std::string& name, + const conversion::Convertible& value) = 0; LayerObserver* observer; mapbox::base::WeakPtrFactory weakFactory {this}; + +private: + optional setVisibility(const conversion::Convertible& value); }; } // namespace style diff --git a/include/mbgl/style/layers/background_layer.hpp b/include/mbgl/style/layers/background_layer.hpp index 7f48618346..9fdfd3ac92 100644 --- a/include/mbgl/style/layers/background_layer.hpp +++ b/include/mbgl/style/layers/background_layer.hpp @@ -20,12 +20,6 @@ public: BackgroundLayer(const std::string& layerID); ~BackgroundLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Paint properties static PropertyValue getDefaultBackgroundColor(); @@ -56,6 +50,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/circle_layer.hpp b/include/mbgl/style/layers/circle_layer.hpp index 1ad16cd033..dd5b674002 100644 --- a/include/mbgl/style/layers/circle_layer.hpp +++ b/include/mbgl/style/layers/circle_layer.hpp @@ -20,12 +20,6 @@ public: CircleLayer(const std::string& layerID, const std::string& sourceID); ~CircleLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Paint properties static PropertyValue getDefaultCircleBlur(); @@ -104,6 +98,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/fill_extrusion_layer.hpp b/include/mbgl/style/layers/fill_extrusion_layer.hpp index ef692e5708..ca33c6c3f8 100644 --- a/include/mbgl/style/layers/fill_extrusion_layer.hpp +++ b/include/mbgl/style/layers/fill_extrusion_layer.hpp @@ -20,12 +20,6 @@ public: FillExtrusionLayer(const std::string& layerID, const std::string& sourceID); ~FillExtrusionLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Paint properties static PropertyValue getDefaultFillExtrusionBase(); @@ -86,6 +80,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/fill_layer.hpp b/include/mbgl/style/layers/fill_layer.hpp index 174758a78e..4a1f09cca0 100644 --- a/include/mbgl/style/layers/fill_layer.hpp +++ b/include/mbgl/style/layers/fill_layer.hpp @@ -20,12 +20,6 @@ public: FillLayer(const std::string& layerID, const std::string& sourceID); ~FillLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Layout properties static PropertyValue getDefaultFillSortKey(); @@ -86,6 +80,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/heatmap_layer.hpp b/include/mbgl/style/layers/heatmap_layer.hpp index 0b740c470b..588aaa81df 100644 --- a/include/mbgl/style/layers/heatmap_layer.hpp +++ b/include/mbgl/style/layers/heatmap_layer.hpp @@ -21,12 +21,6 @@ public: HeatmapLayer(const std::string& layerID, const std::string& sourceID); ~HeatmapLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Paint properties static ColorRampPropertyValue getDefaultHeatmapColor(); @@ -69,6 +63,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/hillshade_layer.hpp b/include/mbgl/style/layers/hillshade_layer.hpp index 184e7c390d..c501e80b8d 100644 --- a/include/mbgl/style/layers/hillshade_layer.hpp +++ b/include/mbgl/style/layers/hillshade_layer.hpp @@ -20,12 +20,6 @@ public: HillshadeLayer(const std::string& layerID, const std::string& sourceID); ~HillshadeLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Paint properties static PropertyValue getDefaultHillshadeAccentColor(); @@ -74,6 +68,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/layer.hpp.ejs b/include/mbgl/style/layers/layer.hpp.ejs index aecbe25601..9cdd74737a 100644 --- a/include/mbgl/style/layers/layer.hpp.ejs +++ b/include/mbgl/style/layers/layer.hpp.ejs @@ -36,12 +36,6 @@ public: <% } -%> ~<%- camelize(type) %>Layer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - <% if (layoutProperties.length) { -%> // Layout properties @@ -72,6 +66,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/line_layer.hpp b/include/mbgl/style/layers/line_layer.hpp index cef18d9fa8..2186f16669 100644 --- a/include/mbgl/style/layers/line_layer.hpp +++ b/include/mbgl/style/layers/line_layer.hpp @@ -23,12 +23,6 @@ public: LineLayer(const std::string& layerID, const std::string& sourceID); ~LineLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Layout properties static PropertyValue getDefaultLineCap(); @@ -129,6 +123,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/raster_layer.hpp b/include/mbgl/style/layers/raster_layer.hpp index b1aa3a65b9..df82c93660 100644 --- a/include/mbgl/style/layers/raster_layer.hpp +++ b/include/mbgl/style/layers/raster_layer.hpp @@ -20,12 +20,6 @@ public: RasterLayer(const std::string& layerID, const std::string& sourceID); ~RasterLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Paint properties static PropertyValue getDefaultRasterBrightnessMax(); @@ -86,6 +80,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; diff --git a/include/mbgl/style/layers/symbol_layer.hpp b/include/mbgl/style/layers/symbol_layer.hpp index 2cffd2294a..40d16dedf3 100644 --- a/include/mbgl/style/layers/symbol_layer.hpp +++ b/include/mbgl/style/layers/symbol_layer.hpp @@ -22,12 +22,6 @@ public: SymbolLayer(const std::string& layerID, const std::string& sourceID); ~SymbolLayer() final; - // Dynamic properties - optional setProperty(const std::string& name, const conversion::Convertible& value) final; - - StyleProperty getProperty(const std::string& name) const final; - Value serialize() const final; - // Layout properties static PropertyValue getDefaultIconAllowOverlap(); @@ -290,6 +284,12 @@ public: std::unique_ptr cloneRef(const std::string& id) const final; protected: + // Dynamic properties + optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; + + StyleProperty getProperty(const std::string& name) const final; + Value serialize() const final; + Mutable mutableBaseImpl() const final; }; -- cgit v1.2.1