37 #ifndef INCLUDED_IMF_ATTRIBUTE_H
38 #define INCLUDED_IMF_ATTRIBUTE_H
74 virtual const char *
typeName ()
const = 0;
81 virtual Attribute *
copy ()
const = 0;
88 virtual void writeValueTo (OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os,
91 virtual void readValueFrom (OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is,
111 static bool knownType (
const char typeName[]);
123 Attribute *(*newAttribute)());
167 virtual const char *
typeName ()
const;
197 virtual void writeValueTo (OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os,
200 virtual void readValueFrom (OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is,
301 return staticTypeName();
328 OPENEXR_IMF_INTERNAL_NAMESPACE::Xdr::write <OPENEXR_IMF_INTERNAL_NAMESPACE::StreamIO> (os, _value);
338 OPENEXR_IMF_INTERNAL_NAMESPACE::Xdr::read <OPENEXR_IMF_INTERNAL_NAMESPACE::StreamIO> (is, _value);
346 _value = cast(other)._value;
358 throw IEX_NAMESPACE::TypeExc (
"Unexpected attribute type.");
372 throw IEX_NAMESPACE::TypeExc (
"Unexpected attribute type.");
382 return *cast (&attribute);
390 return *cast (&attribute);
static IMF_EXPORT Attribute * newAttribute(const char typeName[])
static TypedAttribute * cast(Attribute *attribute)
#define OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
virtual void readValueFrom(OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int size, int version)
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 IMF_EXPORT bool knownType(const char typeName[])
virtual void writeValueTo(OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, int version) const
static void unRegisterAttributeType()
virtual IMF_EXPORT ~Attribute()
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()
GLsizei const GLfloat * value
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
static const char * staticTypeName()
virtual ~TypedAttribute()
virtual void copyValueFrom(const Attribute &other)
virtual void copyValueFrom(const Attribute &other)=0