11 #include <tbb/spin_mutex.h>
13 namespace MAKVRinTerra
20 template <
typename FS,
typename Inner>
47 void add(
const Inner&);
48 void add(std::auto_ptr<Inner>);
51 void addFront(Inner*);
53 std::string label()
const;
56 FS* filter(
const DtQuery&,
const boost::optional<DtFeatureGeometry>&,
DtLoadType)
const;
58 bool loaded(
double = 0.0)
const;
60 unsigned numberOfFeatures()
const;
63 bool isIndexed()
const;
64 bool isCacheable(
const boost::optional<DtFeatureGeometry>& area)
const;
65 void cacheEstimate(
double& time,
double&
size,
const boost::optional<DtFeatureGeometry>& area)
const;
67 const boost::optional<DtFeatureGeometry>& area,
74 struct ParallelIterator;
75 template <
typename Function>
struct ParallelAsyncIterator;
76 struct ParallelFilter;
90 template <
size_t N,
typename FS,
typename Inner>
113 void set(
size_t n, Inner* fs);
114 void set(
size_t n,
const Inner&);
115 void set(
size_t n, std::auto_ptr<Inner>);
117 std::string label()
const;
120 FS* filter(
const DtQuery&,
const boost::optional<DtFeatureGeometry>&,
DtLoadType)
const;
122 bool loaded(
double = 0.0)
const;
124 unsigned numberOfFeatures()
const;
127 bool isIndexed()
const;
128 bool isCacheable(
const boost::optional<DtFeatureGeometry>& area)
const;
129 void cacheEstimate(
double& time,
double&
size,
const boost::optional<DtFeatureGeometry>& area)
const;
131 const boost::optional<DtFeatureGeometry>& area,
138 struct ParallelIterator;
139 template <
typename Function>
struct ParallelAsyncIterator;
140 struct ParallelFilter;
150 std::auto_ptr<Inner> myFeatures[N];