14 #include <boost/signals2.hpp>
15 #include <boost/foreach.hpp>
17 namespace MAKVRinTerra
23 ,
public boost::enable_shared_from_this< DtDynamicFeature<F> >
28 typedef typename F::Key
Key;
33 typedef boost::shared_ptr<DtDynamicFeature>
Ptr;
34 typedef boost::shared_ptr<const DtDynamicFeature>
CPtr;
62 BOOST_FOREACH(
const typename AttributeMap::value_type& pair,
myAttributes)
63 func(pair.first, pair.second);
91 return boost::none_t();
99 Mutex::scoped_lock lock(
myMutex,
false);
114 boost::signals2::connection conn(
myDeleteSignal.connect(callback, boost::signals2::at_front));
115 return boost::bind(&boost::signals2::connection::disconnect, conn);
120 Mutex::scoped_lock lock(
myMutex,
false);
127 Mutex::scoped_lock lock(
myMutex,
true);
AttributeMap myAttributes
Definition: dynamicFeature.h:149
void setDeleted()
Definition: dynamicFeature.h:124
~DtDynamicFeature()
Definition: dynamicFeature.h:43
Key used to lookup attributes.
Definition: feature.h:66
Wraps a feature object and makes sure all the callbacks are unhooked correctly In order to wrap a fea...
Definition: feature.h:299
Feature object representing a dynamic feature.
Definition: dynamicFeature.h:21
F::Attribute Attribute
Definition: dynamicFeature.h:29
bool isDeleted() const
Definition: dynamicFeature.h:118
DtFeature * clone() const
Definition: dynamicFeature.h:49
DetachCallback addDeleteCallback(const DeleteCallback &callback) const
Definition: dynamicFeature.h:94
DtFeatureGeometry geometry() const
Definition: dynamicFeature.h:55
Default on in debug, off in release.
Definition: objectCounter.h:31
DtDynamicFeature(DtFeatureGeometry geom=DtFeatureGeometry())
Definition: dynamicFeature.h:36
void forEachAttribute(ForEachFunction func) const
Definition: dynamicFeature.h:60
boost::function< void()> DetachCallback
Callback used to detach the user from a feature so the users callback is not called anymore...
Definition: feature.h:178
DeleteSignal myDeleteSignal
Definition: dynamicFeature.h:144
String name
Definition: feature.h:99
unsigned index
Definition: feature.h:100
boost::function< void(const Key &, const Attribute &)> ForEachFunction
Callback used to iterating through attributes with ForEachAttribute.
Definition: feature.h:149
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
boost::function< void()> DeleteCallback
User supplied callback called when feature is deleted.
Definition: feature.h:181
bool myDeletedFlag
Definition: dynamicFeature.h:141
unsigned numberOfAttributes(const typename Key::String &name) const
Definition: dynamicFeature.h:66
Mutex myMutex
Definition: dynamicFeature.h:140
std::map< Key, Attribute > AttributeMap
Definition: dynamicFeature.h:148
tbb::spin_rw_mutex Mutex
Definition: dynamicFeature.h:139
F::DetachCallback DetachCallback
Definition: dynamicFeature.h:31
boost::shared_ptr< DtDynamicFeature > Ptr
Definition: dynamicFeature.h:33
boost::signals2::signal< void()> DeleteSignal
Definition: dynamicFeature.h:143
F::ForEachFunction ForEachFunction
Definition: dynamicFeature.h:27
boost::optional< Attribute > attribute(const Key &k) const
Definition: dynamicFeature.h:82
Case insensitive string.
Definition: feature.h:69
Represents a GIS feature.
Definition: feature.h:37
DtFeatureGeometry myGeometry
Definition: dynamicFeature.h:146
F::Key Key
Definition: dynamicFeature.h:28
boost::shared_ptr< const DtDynamicFeature > CPtr
Definition: dynamicFeature.h:34
Represents a feature geometry.
Definition: featureGeometry.h:35
F::DeleteCallback DeleteCallback
Definition: dynamicFeature.h:30
bool hasAttribute(const Key &k) const
Definition: dynamicFeature.h:74