#ifndef MBGL_SPRITE #define MBGL_SPRITE #include #include #include #include #include #include #include #include #include #include namespace mbgl { class Request; class Sprite : private util::noncopyable { public: class Observer { public: virtual ~Observer() = default; virtual void onSpriteLoaded(const Sprites& sprites) = 0; virtual void onSpriteLoadingFailed(std::exception_ptr error) = 0; }; Sprite(const std::string& baseUrl, float pixelRatio); ~Sprite(); inline bool isLoaded() const { return loaded; } void dumpDebugLogs() const; const float pixelRatio; void setObserver(Observer* observer); private: void emitSpriteLoadedIfComplete(); void emitSpriteLoadingFailed(const std::string& message); struct Loader; std::unique_ptr loader; bool loaded = false; Observer* observer = nullptr; }; } // namespace mbgl #endif