GL Studio C++ Runtime API
DistiAttributeProperty< containerT, T, SetArgT, GetReturnT > Class Template Reference

#include <gls_metadata_attributes.h>

Inheritance diagram for DistiAttributeProperty< containerT, T, SetArgT, GetReturnT >:
DistiAttribute< T > DistiAttributeBase WeakReferenceableMixin WeakReferenceable

Public Member Functions

virtual bool OkToWrite () const
 
virtual std::string ValueString ()
 
virtual void ValueString (const std::string &s)
 
virtual long ValueInt ()
 
virtual void ValueInt (long val)
 
virtual double ValueFloat ()
 
virtual void ValueFloat (double val)
 
virtual std::ostream & WriteValue (std::ostream &outstr)
 
virtual std::istream & ReadValue (std::istream &instr)
 
virtual T Value ()
 
virtual void Value (const T &val)
 
- Public Member Functions inherited from DistiAttribute< T >
 DistiAttribute (CallbackMethodCallerBase *callback, const AttributeName &name, T *attribPtr)
 
 DistiAttribute (CallbackMethodCallerBase *callback, const AttributeName &name, const T &initialValue)
 
virtual bool Copyable () const
 
virtual DistiAttributeBaseoperator= (const DistiAttributeBase &oldClass)
 
virtual bool operator== (const DistiAttributeBase &rArg)
 
virtual ~DistiAttribute ()
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
std::ostream & WriteValue (std::ostream &outstr)
 
template<>
std::istream & ReadValue (std::istream &instr)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
std::ostream & WriteValue (std::ostream &outstr)
 
template<>
std::istream & ReadValue (std::istream &instr)
 
template<>
std::istream & ReadValue (std::istream &instr)
 
template<>
std::istream & ReadValue (std::istream &instr)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
- Public Member Functions inherited from DistiAttributeBase
 DistiAttributeBase (CallbackMethodCallerBase *callback, const AttributeName &name, bool localStorage)
 
const AttributeNameName () const
 
AttributeNameName ()
 
bool LocalStorage () const
 
virtual bool ValueChanged ()
 
virtual void ResetValueChanged ()
 
virtual void CallCallback ()
 
template<class valType >
DistiAttributeBaseoperator<< (const valType &val)
 
template<class valType >
DistiAttributeBaseoperator>> (valType &val)
 
virtual CallbackID RegisterObserver (AttributeObserver *observer)
 
virtual void UnregisterObserver (CallbackID id)
 
virtual void NotifyObservers ()
 
- Public Member Functions inherited from WeakReferenceableMixin
void AddWeakReference (WeakReference *weakRef)
 
void NotifyWeakReferenceDestroyed (WeakReference *ref)
 

Additional Inherited Members

- Public Types inherited from DistiAttributeBase
typedef unsigned int CallbackID
 Type for unique identifiers.
 
- Public Attributes inherited from DistiAttributeBase
AttributeName _name
 
CallbackMethodCallerBase_callback
 
bool _localStorage
 
- Protected Member Functions inherited from WeakReferenceableMixin
 WeakReferenceableMixin (void)
 
virtual ~WeakReferenceableMixin ()
 
- Protected Attributes inherited from DistiAttribute< T >
T * _attribPtr
 
int _precision
 
- Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * _weakRefs
 

Detailed Description

template<class containerT, class T, class SetArgT = const T&, class GetReturnT = T>
class disti::DistiAttributeProperty< containerT, T, SetArgT, GetReturnT >

The attribute used in generated code for accessing class properties It can have a get method, set method, and an attribute pointer, or almost any combination of the three. T must have a default constructor, even if it doesn't initialize. SetArgT is the argument type for the SetMethodType. Specify this if the argument for the Set call is not "const &T". GetReturnT is the return type for the GetMethodType. Specify this if the return type for the Get call is not T The get and set methods are called when the attribute interface is used for access. If the methods are not provided, the attribute stream operators are used instead. If the property does not have a method or attribute pointer, it will not be able to read/write its value.

Member Function Documentation

virtual bool OkToWrite ( ) const
inlinevirtual

Returns true if this object is ready to have its WriteValue() called This SHOULD be overriden by any derived objects that may not be ready to write at any point. The reason for this is the data is often written "NAME: VALUE". If Value is not available, we don't want to write "NAME: " first, so before writting "NAME: ", OkToWrite() can be called to see if it will have a valid value

Reimplemented from DistiAttributeBase.

virtual std::istream& ReadValue ( std::istream &  instr)
inlinevirtual

Reads the data from the stream The ReadValue call shall consume only what it needs. It is the responsibility of the calling function to read to the end of line, or to clean up from a bad read. The calling function will also ensure that the data starts as the next byte in the stream.

Reimplemented from DistiAttribute< T >.

virtual T Value ( )
inlinevirtual

Allows for type specific access to the data

Reimplemented from DistiAttribute< T >.

virtual void Value ( const T &  val)
inlinevirtual

Allows for type specific access to the data

Reimplemented from DistiAttribute< T >.

virtual double ValueFloat ( )
inlinevirtual

Allows for faster access to integer types than the more generic GetValueSimple. However, it is only faster if it is overridden. It is overridden here to allow for template specialization

Reimplemented from DistiAttribute< T >.

virtual void ValueFloat ( double  val)
inlinevirtual

Allows for faster access to integer types than the more generic SetValueSimple. However, it is only faster if it is overridden. It is overridden here to allow for template specialization

Reimplemented from DistiAttribute< T >.

virtual long ValueInt ( )
inlinevirtual

Allows for faster access to integer types than the more generic GetValueSimple. However, it is only faster if it is overridden. It is overridden here to allow for template specialization

Reimplemented from DistiAttribute< T >.

virtual void ValueInt ( long  val)
inlinevirtual

Allows for faster access to integer types than the more generic SetValueSimple. However, it is only faster if it is overridden. It is overridden here to allow for template specialization

Reimplemented from DistiAttribute< T >.

virtual std::string ValueString ( )
inlinevirtual

Returns the std::string version of the attribute data. Here in the base class it uses WriteValue() If this particular attribute's underlying type is a string, this returns the unencoded value, suitable for users. If a file encoded value is required, call WriteValue instead.

Reimplemented from DistiAttributeBase.

virtual void ValueString ( const std::string &  s)
inlinevirtual

Sets the value from a std::string argument. Here in the base class it uses ReadValue() If this particular attribute's underlying type is a string, this should not be set to an encoded value. If needing to set from an encoded value, call ReadValue instead.

Reimplemented from DistiAttributeBase.

virtual std::ostream& WriteValue ( std::ostream &  outstr)
inlinevirtual

Writes the data to the stream

Reimplemented from DistiAttribute< T >.


The documentation for this class was generated from the following file: