diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2015-05-05 10:18:36 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2015-05-05 10:18:36 -0700 |
commit | 6260dbe043d9e836f4d5955f1a72e7965b7a7b29 (patch) | |
tree | 5dba188571ac0b4dc26f9b017470b3f71e19a695 /src/mbgl/map/sprite.hpp | |
parent | 81e6c2c6c3ece471e03456a49d3bb6dc1d5a7284 (diff) | |
parent | 19881f8b24c94ef66cc3ee72eebc73eeb37af2af (diff) | |
download | qtlocation-mapboxgl-6260dbe043d9e836f4d5955f1a72e7965b7a7b29.tar.gz |
Merge pull request #1326 from mapbox/925-remove_promisesios-v0.2.20
Remove promises from the parsing pipeline
Diffstat (limited to 'src/mbgl/map/sprite.hpp')
-rw-r--r-- | src/mbgl/map/sprite.hpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/mbgl/map/sprite.hpp b/src/mbgl/map/sprite.hpp index bd6ae89bc6..ccf2561618 100644 --- a/src/mbgl/map/sprite.hpp +++ b/src/mbgl/map/sprite.hpp @@ -11,7 +11,6 @@ #include <iosfwd> #include <string> #include <unordered_map> -#include <future> namespace mbgl { @@ -35,23 +34,31 @@ public: class Sprite : private util::noncopyable { public: - Sprite(const std::string& baseUrl, float pixelRatio, Environment&, std::function<void()> callback); + class Observer { + public: + virtual ~Observer() = default; + + virtual void onSpriteLoaded() = 0; + }; + + Sprite(const std::string& baseUrl, float pixelRatio); ~Sprite(); const SpritePosition &getSpritePosition(const std::string& name) const; bool hasPixelRatio(float ratio) const; - void waitUntilLoaded() const; bool isLoaded() const; const float pixelRatio; std::unique_ptr<util::Image> raster; + void setObserver(Observer* observer); private: + void emitSpriteLoadedIfComplete(); + void parseJSON(); void parseImage(); - void complete(); std::string body; std::string image; @@ -60,13 +67,10 @@ private: std::unordered_map<std::string, SpritePosition> pos; const SpritePosition empty; - std::promise<void> promise; - std::future<void> future; - std::function<void ()> callback; - Environment& env; Request* jsonRequest = nullptr; Request* spriteRequest = nullptr; + Observer* observer = nullptr; }; } |