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 Types

typedef DistiAttribute< T > _BaseClass
 Deprecated typedef for the base class.
 
typedef DistiAttribute< T > BaseClass
 Typedef for the base class.
 
typedef void(containerT::* SetMethodType) (SetArgT)
 Typedef for the set method function pointer.
 
typedef GetReturnT(containerT::* GetMethodType) ()
 Typedef for the get method function pointer.
 
typedef GetReturnT(containerT::* GetMethodConstType) () const
 Typedef for the get method const function pointer.
 
- Public Types inherited from DistiAttributeBase
typedef unsigned int CallbackID
 Type for unique identifiers.
 

Public Member Functions

 DistiAttributeProperty (const AttributeName &name, containerT *frame, T *attribPtr, SetMethodType setMethod, GetMethodType getMethod)
 
virtual bool OkToWrite () const override
 
virtual std::string ValueString () override
 
virtual void ValueString (const std::string &s) override
 
virtual long ValueInt () override
 
virtual void ValueInt (long val) override
 
virtual double ValueFloat () override
 
virtual void ValueFloat (double val) override
 
virtual std::ostream & WriteValue (std::ostream &outstr) override
 
virtual std::istream & ReadValue (std::istream &instr) override
 
virtual T Value () override
 
virtual void Value (const T &val) override
 
- Public Member Functions inherited from DistiAttribute< T >
 DistiAttribute (CallbackMethodCallerBase *callback, const AttributeName &name, T *attribPtr)
 
 DistiAttribute (CallbackMethodCallerBase *callback, const AttributeName &name, const T &initialValue)
 
bool Copyable () const override
 
long ValueInt () override
 
void ValueInt (long val) override
 
double ValueFloat () override
 
void ValueFloat (double val) override
 
DistiAttributeBaseoperator= (const DistiAttributeBase &oldClass) override
 
std::ostream & WriteValue (std::ostream &outstr) override
 
std::istream & ReadValue (std::istream &instr) override
 
virtual T Value ()
 
virtual void Value (const T &val)
 
bool operator== (const DistiAttributeBase &rArg) override
 
 ~DistiAttribute () override
 
- Public Member Functions inherited from DistiAttributeBase
 DistiAttributeBase (CallbackMethodCallerBase *callback, const AttributeName &name, bool localStorage)
 
virtual DistiAttributeBaseoperator= (const DistiAttributeBase &oldClass)
 
const AttributeNameName () const
 
AttributeNameName ()
 
bool LocalStorage () const
 
virtual bool Copyable () const
 
virtual bool OkToWrite () const
 
virtual bool ValueChanged ()
 
virtual void ResetValueChanged ()
 
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 void CallCallback ()
 Calls callback CallType3 if it has been set.
 
virtual std::ostream & WriteValue (std::ostream &outstr)=0
 
virtual std::istream & ReadValue (std::istream &instr)=0
 
virtual bool operator== (const DistiAttributeBase &r)
 
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) override
 
void NotifyWeakReferenceDestroyed (WeakReference *ref) override
 
virtual void AddWeakReference (WeakReference *weakRef)=0
 
virtual void NotifyWeakReferenceDestroyed (WeakReference *weakReference)=0
 

Public Attributes

float _precision
 Number of digits of floating point precision.
 
containerT * _container
 Object that contains the set and get methods.
 
SetMethodType _setMethod
 The set method function pointer.
 
GetMethodType _getMethod
 The get method function pointer.
 

Additional Inherited Members

- Protected Member Functions inherited from WeakReferenceableMixin
 WeakReferenceableMixin ()
 
virtual ~WeakReferenceableMixin ()
 
- Protected Attributes inherited from DistiAttribute< T >
T * _attribPtr
 
int _precision
 
- Protected Attributes inherited from DistiAttributeBase
AttributeName _name
 
CallbackMethodCallerBase_callback
 
ScopedPtr< DistiAttributeObserverList > _observerList
 
bool _localStorage
 
- 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.

Constructor & Destructor Documentation

◆ DistiAttributeProperty()

DistiAttributeProperty ( const AttributeName name,
containerT *  frame,
T *  attribPtr,
SetMethodType  setMethod,
GetMethodType  getMethod 
)
inline

Constructor

Parameters
nameThe name of the new attribute.
frameThe object containing the set and get methods.
attribPtrThe pointer to the underlying storage for this attribute.
setMethodThe set method function pointer.
getMethodThe get method function pointer.

Member Function Documentation

◆ OkToWrite()

virtual bool OkToWrite ( ) const
inlineoverridevirtual

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 writing "NAME: ", OkToWrite() can be called to see if it will have a valid value.

Returns
True if this object is ready to have its WriteValue() called.

Reimplemented from DistiAttributeBase.

◆ ReadValue()

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

Read from the stream, and store it in this attribute.

Parameters
instrThe stream to read from.
Returns
The stream in its updated state.

Reimplemented from DistiAttribute< T >.

◆ Value() [1/2]

virtual T Value ( )
inlineoverridevirtual

Allows for type specific access to the data.

Returns
The underlying value of the attribute in its type.

Reimplemented from DistiAttribute< T >.

◆ Value() [2/2]

virtual void Value ( const T &  val)
inlineoverridevirtual

Allows for type specific access to the data.

Parameters
valThe value to set in the attribute's type.

Reimplemented from DistiAttribute< T >.

◆ ValueFloat() [1/2]

virtual double ValueFloat ( )
inlineoverridevirtual
Returns
The double value of this attribute.

Reimplemented from DistiAttribute< T >.

◆ ValueFloat() [2/2]

virtual void ValueFloat ( double  val)
inlineoverridevirtual

Set the double value for this attribute.

Parameters
valThe double value to set for this attribute.

Reimplemented from DistiAttribute< T >.

◆ ValueInt() [1/2]

virtual long ValueInt ( )
inlineoverridevirtual
Returns
The integer value of this attribute.

Reimplemented from DistiAttribute< T >.

◆ ValueInt() [2/2]

virtual void ValueInt ( long  val)
inlineoverridevirtual

Set the integer value of this attribute.

Parameters
valThe integer value to set for this attribute.

Reimplemented from DistiAttribute< T >.

◆ ValueString() [1/2]

virtual std::string ValueString ( )
inlineoverridevirtual

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.

Returns
The std::string version of the attribute data.

Reimplemented from DistiAttributeBase.

◆ ValueString() [2/2]

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

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.

Parameters
sThe string value to set.

Reimplemented from DistiAttributeBase.

◆ WriteValue()

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

Write this attribute's string value to the stream.

Parameters
outstrThe stream to write to.
Returns
The stream in its updated state.

Reimplemented from DistiAttribute< T >.


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