summaryrefslogtreecommitdiff
path: root/src/mbgl/map/environment.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/map/environment.hpp')
-rw-r--r--src/mbgl/map/environment.hpp44
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