35 #ifndef IE_CORE_CLASSDATA_H
36 #define IE_CORE_CLASSDATA_H
40 #include "IECore/Deleter.h"
84 template<
typename ClassTypeT,
typename DataTypeT,
typename DataDeletePolicyT = NullDeleter<DataTypeT> >
89 typedef ClassTypeT ClassType;
90 typedef DataTypeT DataType;
91 typedef DataDeletePolicyT DataDeletePolicy;
97 DataType &
create(
const ClassType* classOwner );
100 DataType &
create(
const ClassType* classOwner,
const DataType &d );
104 const DataType &
operator[](
const ClassType *classOwner )
const;
108 DataType &
operator[](
const ClassType *classOwner );
112 void erase(
const ClassType *classOwner );
116 typedef std::map< const ClassType*, DataType > ClassDataMap;
117 ClassDataMap m_classDataMap;
122 #include "IECore/ClassData.inl"
124 #endif // IE_CORE_CLASSDATA_H
Definition: ClassData.h:85
virtual ~ClassData()
Exercises DataDeletePolicy on all held data.
const DataType & operator[](const ClassType *classOwner) const
void erase(const ClassType *classOwner)
DataType & create(const ClassType *classOwner)
Create some uninitialized data for the given class.
This namespace contains all components of the core library.
Definition: AddSmoothSkinningInfluencesOp.h:43