summaryrefslogtreecommitdiff
path: root/include/mbgl/platform/platform.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/platform/platform.hpp')
-rw-r--r--include/mbgl/platform/platform.hpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/include/mbgl/platform/platform.hpp b/include/mbgl/platform/platform.hpp
new file mode 100644
index 0000000000..02aeb594b6
--- /dev/null
+++ b/include/mbgl/platform/platform.hpp
@@ -0,0 +1,46 @@
+#ifndef MBGL_PLATFORM_PLATFORM
+#define MBGL_PLATFORM_PLATFORM
+
+#include <memory>
+#include <functional>
+#include <string>
+
+typedef struct uv_loop_s uv_loop_t;
+
+namespace uv {
+class loop;
+}
+
+namespace mbgl {
+namespace platform {
+
+class Request;
+
+struct Response {
+ Response(std::function<void(Response *)> callback) : callback(callback) {}
+ int16_t code = -1;
+ std::string body;
+ std::string error_message;
+ std::function<void(Response *)> callback;
+};
+
+// Makes an HTTP request of a URL, preferrably on a background thread, and calls a function with the
+// results in the original thread (which runs the libuv loop).
+// If the loop pointer is NULL, the callback function will be called on an arbitrary thread.
+// Returns a cancellable request.
+std::shared_ptr<Request> request_http(const std::string &url,
+ std::function<void(Response *)> callback,
+ std::shared_ptr<uv::loop> loop = nullptr);
+
+// Cancels an HTTP request.
+void cancel_request_http(const std::shared_ptr<Request> &req);
+
+// Shows an alpha image with the specified dimensions in a named window.
+void show_debug_image(std::string name, const char *data, size_t width, size_t height);
+
+// Shows an alpha image with the specified dimensions in a named window.
+void show_color_debug_image(std::string name, const char *data, size_t logical_width, size_t logical_height, size_t width, size_t height);
+}
+}
+
+#endif