diff options
Diffstat (limited to 'src/mbgl/map/environment.hpp')
-rw-r--r-- | src/mbgl/map/environment.hpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/mbgl/map/environment.hpp b/src/mbgl/map/environment.hpp new file mode 100644 index 0000000000..b68a7b9e2f --- /dev/null +++ b/src/mbgl/map/environment.hpp @@ -0,0 +1,44 @@ +#ifndef MBGL_MAP_MAP_ENVIRONMENT +#define MBGL_MAP_MAP_ENVIRONMENT + +#include <mbgl/util/noncopyable.hpp> +#include <mbgl/util/util.hpp> + +#include <thread> +#include <functional> + +typedef struct uv_loop_s uv_loop_t; + +namespace mbgl { + +class FileSource; +class Request; +class Response; +struct Resource; + +class Environment : private util::noncopyable { +public: + Environment(FileSource &); + + void setup(); + + bool inMapThread() const; + + void requestAsync(const Resource &, std::function<void(const Response &)>); + Request *request(const Resource &, std::function<void(const Response &)>); + void cancelRequest(Request *); + + // Request to terminate the environment. + void terminate(); + +private: + FileSource &fileSource; + std::thread::id mapThread; + +public: + uv_loop_t *const loop; +}; + +} + +#endif |