21#include <unordered_map>
38 void add(uint16_t tile_id, tf::Future<void> future)
40 std::unique_lock lock(
mutex_);
41 tileFutures_.insert_or_assign(tile_id, std::move(future));
47 std::vector<std::reference_wrapper<tf::Future<void>>> futures;
49 std::unique_lock lock(
mutex_);
53 futures.emplace_back(future);
58 for(
auto& future_ref : futures)
60 future_ref.get().wait();
65 bool wait(uint16_t tile_id)
67 std::unique_lock lock(
mutex_);
73 auto& future = it->second;
82 std::unique_lock lock(
mutex_);
89 std::unique_lock lock(
mutex_);
100 std::unique_lock lock(
mutex_);
106 std::unique_lock lock(
mutex_);
110 auto future = std::move(it->second);
120 std::unique_lock lock(
mutex_);
std::mutex mutex_
Definition TileFutureManager.h:125
TileFutureManager & operator=(const TileFutureManager &)=delete
std::unordered_map< uint16_t, tf::Future< void > > tileFutures_
Definition TileFutureManager.h:126
void cancelAll()
Definition TileFutureManager.h:87
TileFutureManager()=default
void waitAndClear(uint16_t tileIndex)
Definition TileFutureManager.h:104
void wait()
Definition TileFutureManager.h:45
void clear()
Definition TileFutureManager.h:80
TileFutureManager(const TileFutureManager &)=delete
void add(uint16_t tile_id, tf::Future< void > future)
Definition TileFutureManager.h:38
void waitAndClear()
Definition TileFutureManager.h:97
bool wait(uint16_t tile_id)
Definition TileFutureManager.h:65
bool empty() const
Definition TileFutureManager.h:118