diff options
Diffstat (limited to 'src/mbgl/style/style.hpp')
-rw-r--r-- | src/mbgl/style/style.hpp | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/mbgl/style/style.hpp b/src/mbgl/style/style.hpp index ed5df04256..ba5da7435a 100644 --- a/src/mbgl/style/style.hpp +++ b/src/mbgl/style/style.hpp @@ -58,12 +58,18 @@ public: Style(MapData&); ~Style(); - class Observer { + class Observer : public GlyphStore::Observer, + public SpriteStore::Observer, + public Source::Observer { public: - virtual ~Observer() = default; - - virtual void onTileDataChanged() = 0; - virtual void onResourceLoadingFailed(std::exception_ptr error) = 0; + /** + * In addition to the individual glyph, sprite, and source events, the + * following "rollup" events are provided for convenience. They are + * strictly additive; e.g. when a source is loaded, both `onSourceLoaded` + * and `onResourceLoaded` will be called. + */ + virtual void onResourceLoaded() {}; + virtual void onResourceError(std::exception_ptr) {}; }; void setJSON(const std::string& data, const std::string& base); @@ -115,25 +121,23 @@ private: std::vector<std::unique_ptr<StyleLayer>>::const_iterator findLayer(const std::string& layerID) const; // GlyphStore::Observer implementation. - void onGlyphRangeLoaded() override; - void onGlyphRangeLoadingFailed(std::exception_ptr error) override; + void onGlyphsLoaded(const std::string& fontStack, const GlyphRange&) override; + void onGlyphsError(const std::string& fontStack, const GlyphRange&, std::exception_ptr) override; // SpriteStore::Observer implementation. void onSpriteLoaded() override; - void onSpriteLoadingFailed(std::exception_ptr error) override; + void onSpriteError(std::exception_ptr) override; // Source::Observer implementation. - void onSourceLoaded() override; - void onSourceLoadingFailed(std::exception_ptr error) override; - void onTileLoaded(bool isNewTile) override; - void onTileLoadingFailed(std::exception_ptr error) override; - - void emitTileDataChanged(); - void emitResourceLoadingFailed(std::exception_ptr error); + void onSourceLoaded(Source&) override; + void onSourceError(Source&, std::exception_ptr) override; + void onTileLoaded(Source&, const TileID&, bool isNewTile) override; + void onTileError(Source&, const TileID&, std::exception_ptr) override; bool shouldReparsePartialTiles = false; - Observer* observer = nullptr; + Observer nullObserver; + Observer* observer = &nullObserver; std::exception_ptr lastError; |