20 #include <vrfExtProtocol/objectType.h>
24 #include <tbb/spin_mutex.h>
25 #include <tbb/spin_rw_mutex.h>
27 #include <boost/optional.hpp>
28 #include <boost/shared_ptr.hpp>
29 #include <boost/signals2.hpp>
35 namespace MAKVRinTerra
37 class DtVrfObjectFeatureSet;
80 static void objectAddedCallbackFunc(
DtVrfObject*,
void*);
81 static void objectDeletedCallbackFunc(
DtVrfObject*,
void*);
86 boost::shared_ptr<MAKVRinTerra::DtVrfObjectFeatureSet>
myFeatureSet;
90 namespace MAKVRinTerra
95 ,
public boost::enable_shared_from_this<DtVrfObjectFeature>
99 typedef boost::shared_ptr<DtVrfObjectFeature>
Ptr;
100 typedef boost::shared_ptr<const DtVrfObjectFeature>
CPtr;
112 unsigned numberOfAttributes(
const Key::String &)
const;
114 bool hasAttribute(
const Key & k)
const;
116 boost::optional<Attribute> attribute(
const Key &)
const;
119 bool isDeleted()
const;
122 virtual bool isChanged()
const;
125 virtual void removeFromVrf();
127 DtObjectType objectType()
const;
128 std::string objectName()
const;
130 boost::optional<double> percentComplete()
const;
131 boost::optional<bool> isBreached()
const;
159 friend class ::DtDynamicFeaturesManager;
161 typedef boost::shared_ptr<DtVrfObjectFeatureSet>
Ptr;
162 typedef boost::shared_ptr<const DtVrfObjectFeatureSet>
CPtr;
180 Ptr shared_from_this();
182 std::string label()
const;
195 static void verticesChangedCallback(
DtVrfObject*,
void*);
202 typedef std::map<DtVrfObject*, DtVrfObjectFeature::Ptr>
ObjectMap;