| GL Studio C++ Runtime API

Public Types | Public Member Functions | Public Attributes | List of all members
DistiAttributeProperty< containerT, T, SetArgT, GetReturnT > Class Template Reference

`#include <gls_metadata_attributes.h>`

Inheritance diagram for DistiAttributeProperty< containerT, T, SetArgT, GetReturnT >:

## 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
std::string | Type () const 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
DistiAttributeBase & | operator= (const DistiAttributeBase &oldClass) override
std::ostream & | WriteValue (std::ostream &outstr) override
std::istream & | ReadValue (std::istream &instr) override
std::string | Type () const 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 DistiAttributeBase & | operator= (const DistiAttributeBase &oldClass)
const AttributeName & | Name () const
AttributeName & | Name ()
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 std::string | Type () const
virtual bool | operator== (const DistiAttributeBase &r)
template<class valType >
DistiAttributeBase & | operator<< (const valType &val)
template<class valType >
DistiAttributeBase & | operator>> (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

  name | The name of the new attribute.
  frame | The object containing the set and get methods.
  attribPtr | The pointer to the underlying storage for this attribute.
  setMethod | The set method function pointer.
  getMethod | The get method function pointer.

## Member Function Documentation

## ◆ OkToWrite()

virtual bool OkToWrite | ( |  | ) | const
| inline override virtual

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 | ) |
| inline override virtual

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

Parameters

  instr | The stream to read from.

Returns
  The stream in its updated state.

Reimplemented from DistiAttribute< T >.

## ◆ Type()

std::string Type | ( |  | ) | const
| inline override virtual

Demangles type T.

Returns
  String containing new name for type T.

Precondition
  none

Postcondition
  none

Reimplemented from DistiAttribute< T >.

## ◆ Value() [1/2]

virtual T Value | ( |  | ) |
| inline override virtual

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 | ) |
| inline override virtual

Allows for type specific access to the data.

Parameters

  val | The value to set in the attribute's type.

Reimplemented from DistiAttribute< T >.

## ◆ ValueFloat() [1/2]

virtual double ValueFloat | ( |  | ) |
| inline override virtual

Returns
  The double value of this attribute.

Reimplemented from DistiAttribute< T >.

## ◆ ValueFloat() [2/2]

virtual void ValueFloat | ( | double | val | ) |
| inline override virtual

Set the double value for this attribute.

Parameters

  val | The double value to set for this attribute.

Reimplemented from DistiAttribute< T >.

## ◆ ValueInt() [1/2]

virtual long ValueInt | ( |  | ) |
| inline override virtual

Returns
  The integer value of this attribute.

Reimplemented from DistiAttribute< T >.

## ◆ ValueInt() [2/2]

virtual void ValueInt | ( | long | val | ) |
| inline override virtual

Set the integer value of this attribute.

Parameters

  val | The integer value to set for this attribute.

Reimplemented from DistiAttribute< T >.

## ◆ ValueString() [1/2]

virtual std::string ValueString | ( |  | ) |
| inline override virtual

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 | ) |
| inline override virtual

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

  s | The string value to set.

Reimplemented from DistiAttributeBase.

## ◆ WriteValue()

virtual std::ostream & WriteValue | ( | std::ostream & | outstr | ) |
| inline override virtual

Write this attribute's string value to the stream.

Parameters

  outstr | The 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:

- gls_metadata_attributes.h