Home | History | Annotate | Download | only in IlmImf

Lines Matching refs:Attribute

42 //	class Attribute
54 class Attribute
62 Attribute ();
63 virtual ~Attribute ();
67 // Get this attribute's type name
74 // Make a copy of this attribute
77 virtual Attribute * copy () const = 0;
81 // Type-specific attribute I/O and copying
91 virtual void copyValueFrom (const Attribute &other) = 0;
95 // Attribute factory
98 static Attribute * newAttribute (const char typeName[]);
102 // Test if a given attribute type has already been registered
111 // Register an attribute type so that newAttribute()
116 Attribute *(*newAttribute)());
119 // Un-register an attribute type so that newAttribute()
133 class TypedAttribute: public Attribute
148 // Access to the attribute's value
156 // Get this attribute's type name.
171 // Make a new attribute
174 static Attribute * makeNewAttribute ();
178 // Make a copy of this attribute
181 virtual Attribute * copy () const;
185 // Type-specific attribute I/O and copying.
196 virtual void copyValueFrom (const Attribute &other);
203 static TypedAttribute * cast (Attribute *attribute);
204 static const TypedAttribute * cast (const Attribute *attribute);
205 static TypedAttribute & cast (Attribute &attribute);
206 static const TypedAttribute & cast (const Attribute &attribute);
210 // Register this attribute type so that Attribute::newAttribute()
225 // Un-register this attribute type (for debugging only)
243 Attribute (),
252 Attribute (),
261 Attribute (other),
300 Attribute *
308 Attribute *
311 Attribute * attribute = new TypedAttribute<T>();
312 attribute->copyValueFrom (*this);
313 return attribute;
335 TypedAttribute<T>::copyValueFrom (const Attribute &other)
343 TypedAttribute<T>::cast (Attribute *attribute)
346 dynamic_cast <TypedAttribute<T> *> (attribute);
349 throw Iex::TypeExc ("Unexpected attribute type.");
357 TypedAttribute<T>::cast (const Attribute *attribute)
360 dynamic_cast <const TypedAttribute<T> *> (attribute);
363 throw Iex::TypeExc ("Unexpected attribute type.");
371 TypedAttribute<T>::cast (Attribute &attribute)
373 return *cast (&attribute);
379 TypedAttribute<T>::cast (const Attribute &attribute)
381 return *cast (&attribute);
389 Attribute::registerAttributeType (staticTypeName(), makeNewAttribute);
397 Attribute::unRegisterAttributeType (staticTypeName());