7 #ifndef INCLUDED_IMF_ATTRIBUTE_H
8 #define INCLUDED_IMF_ATTRIBUTE_H
29 #pragma warning (push)
30 #pragma warning (disable : 4251)
31 #pragma warning (disable : 4275)
52 virtual const char * typeName ()
const = 0;
59 virtual Attribute *
copy ()
const = 0;
73 virtual void copyValueFrom (
const Attribute &other) = 0;
80 IMF_EXPORT static Attribute * newAttribute (
const char typeName[]);
87 IMF_EXPORT static bool knownType (
const char typeName[]);
96 static void registerAttributeType (
const char typeName[],
97 Attribute *(*newAttribute)());
105 static void unRegisterAttributeType (
const char typeName[]);
146 virtual const char *
typeName ()
const;
154 static const char * staticTypeName ();
263 return staticTypeName();
290 OPENEXR_IMF_INTERNAL_NAMESPACE::Xdr::write <OPENEXR_IMF_INTERNAL_NAMESPACE::StreamIO> (os, _value);
300 OPENEXR_IMF_INTERNAL_NAMESPACE::Xdr::read <OPENEXR_IMF_INTERNAL_NAMESPACE::StreamIO> (is, _value);
308 _value = cast(other)._value;
320 throw IEX_NAMESPACE::TypeExc (
"Unexpected attribute type.");
334 throw IEX_NAMESPACE::TypeExc (
"Unexpected attribute type.");
344 return *cast (&attribute);
352 return *cast (&attribute);
375 #if defined(_MSC_VER)
376 #pragma warning (pop)
static TypedAttribute * cast(Attribute *attribute)
#define OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
OIIO_UTIL_API bool copy(string_view from, string_view to, std::string &err)
GLsizei const GLfloat * value
virtual Attribute * copy() const =0
virtual void writeValueTo(OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, int version) const =0
static IMF_EXPORT void unRegisterAttributeType(const char typeName[])
static void unRegisterAttributeType()
virtual void writeValueTo(OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, int version) const
#define IMF_EXPORT_TEMPLATE_TYPE
class IMF_EXPORT_TYPE OStream
virtual void readValueFrom(OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int size, int version)
static Attribute * makeNewAttribute()
static IMF_EXPORT void registerAttributeType(const char typeName[], Attribute *(*newAttribute)())
GT_API const UT_StringHolder version
virtual Attribute * copy() const
virtual const char * typeName() const
static void registerAttributeType()
OIIO_API bool attribute(string_view name, TypeDesc type, const void *val)
#define OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
virtual const char * typeName() const =0
virtual void readValueFrom(OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int size, int version)=0
class IMF_EXPORT_TYPE Attribute
virtual ~TypedAttribute()
virtual void copyValueFrom(const Attribute &other)
virtual void copyValueFrom(const Attribute &other)=0
class IMF_EXPORT_TYPE IStream