17 #include <tbb/mutex.h>
18 #include <tbb/spin_mutex.h>
19 #include <tbb/tbb_thread.h>
20 #include <tbb/compat/condition_variable>
22 namespace MAKVRinTerra
27 template <
typename FS>
31 ,
public boost::enable_shared_from_this<DtAsyncLoadingFeatureSet<FS> >
35 typedef boost::shared_ptr<DtAsyncLoadingFeatureSet>
Ptr;
38 typedef boost::weak_ptr<DtAsyncLoadingFeatureSet>
WPtr;
50 static bool Run(
const Ptr&);
51 static bool Run(
WPtr);
55 virtual void start() = 0;
57 std::string label()
const;
62 bool loaded(
double)
const;
63 unsigned numberOfFeatures()
const;
66 unsigned size()
const;
67 boost::shared_ptr<DtUnusedFeatureTileTracker::Trackable> getPtr();
83 virtual bool run(
const Ptr&);
104 template <
typename FS>
115 bool loading()
const;
120 template <
typename FS>
125 typedef boost::shared_ptr<DtQueueLoadingFeatureSet>
Ptr;
126 typedef boost::shared_ptr<DtQueueLoadingFeatureSet>
WPtr;
137 FS* createFeatureSet(
FS* fs)
const;
141 boost::weak_ptr<Queue> queue,