1 #pragma once
2 
3 #include <mbgl/util/noncopyable.hpp>
4 
5 #include <memory>
6 #include <functional>
7 
8 namespace mbgl {
9 namespace util {
10 
11 class AsyncTask : private util::noncopyable {
12 public:
13     AsyncTask(std::function<void()>&&);
14     ~AsyncTask();
15 
16     void send();
17 
18 private:
19     class Impl;
20     std::unique_ptr<Impl> impl;
21 };
22 
23 } // namespace util
24 } // namespace mbgl
25