13 #ifndef mitkSmartPointerProperty_h
14 #define mitkSmartPointerProperty_h
28 #pragma warning(disable : 4522)
38 itkFactorylessNewMacro(
Self);
44 itk::Object::Pointer GetSmartPointer()
const;
47 void SetSmartPointer(itk::Object *);
51 std::string GetValueAsString()
const override;
53 static void PostProcessXMLReading();
56 static unsigned int GetReferenceCountFor(itk::Object *);
57 static std::string GetReferenceUIDFor(itk::Object *);
58 static void RegisterPointerTarget(itk::Object *,
const std::string uid);
60 using BaseProperty::operator=;
72 itk::LightObject::Pointer InternalClone()
const override;
77 typedef std::map<itk::Object *, unsigned int> ReferenceCountMapType;
78 typedef std::map<itk::Object *, std::string> ReferencesUIDMapType;
79 typedef std::map<SmartPointerProperty *, std::string> ReadInSmartPointersMapType;
80 typedef std::map<std::string, itk::Object *> ReadInTargetsMapType;
83 static ReferenceCountMapType m_ReferenceCount;
84 static ReferencesUIDMapType m_ReferencesUID;
85 static ReadInSmartPointersMapType m_ReadInInstances;
86 static ReadInTargetsMapType m_ReadInTargets;