summaryrefslogtreecommitdiff
path: root/include/mbgl/util/work_task.hpp
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2015-08-31 14:40:09 +0300
committerJohn Firebaugh <john.firebaugh@gmail.com>2015-11-16 12:25:47 -0800
commit36581f3d3015d525db92248004e9dc7477705694 (patch)
tree6f5d6fb38f3ef925a1afbbf41762581b3e0dbf66 /include/mbgl/util/work_task.hpp
parent2eb0203bf43e635b756bbf1322c53b8d299d4b37 (diff)
downloadqtlocation-mapboxgl-36581f3d3015d525db92248004e9dc7477705694.tar.gz
[core] Do not pass uv_loop_t around
This should be abstracted by util::RunLoop
Diffstat (limited to 'include/mbgl/util/work_task.hpp')
-rw-r--r--include/mbgl/util/work_task.hpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/mbgl/util/work_task.hpp b/include/mbgl/util/work_task.hpp
new file mode 100644
index 0000000000..2224b211c4
--- /dev/null
+++ b/include/mbgl/util/work_task.hpp
@@ -0,0 +1,21 @@
+#ifndef MBGL_UTIL_WORK_TASK
+#define MBGL_UTIL_WORK_TASK
+
+#include <mbgl/util/noncopyable.hpp>
+
+namespace mbgl {
+
+// A movable type-erasing function wrapper. This allows to store arbitrary invokable
+// things (like std::function<>, or the result of a movable-only std::bind()) in the queue.
+// Source: http://stackoverflow.com/a/29642072/331379
+class WorkTask : private util::noncopyable {
+public:
+ virtual ~WorkTask() = default;
+
+ virtual void operator()() = 0;
+ virtual void cancel() = 0;
+};
+
+}
+
+#endif