| GL Studio C++ Runtime API

Public Member Functions | Protected Attributes | List of all members
DistiAttributeAlias Class Reference

`#include <gls_metadata_attributes.h>`

Inheritance diagram for DistiAttributeAlias:

## Public Member Functions
| DistiAttributeAlias (CallbackMethodCallerBase *callback, const AttributeName &name, const AttributeName &originalName, DistiAttribDict *dict)
virtual bool | OkToWrite () const override
virtual bool | ValueChanged () override
virtual void | ResetValueChanged () 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 bool | operator== (const DistiAttributeBase &r) override
virtual CallbackID | RegisterObserver (AttributeObserver *callback) override
virtual void | UnregisterObserver (CallbackID id) override
virtual void | NotifyObservers () 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

## Protected Attributes
AttributeName | _originalAttribName
| Name of the original attribute that this alias points to.
DistiAttribDict * | _dictionary
| The dictionary containing the original attribute.
Protected Attributes inherited from DistiAttributeBase
AttributeName | _name
CallbackMethodCallerBase * | _callback
ScopedPtr< DistiAttributeObserverList > | _observerList
bool | _localStorage
Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * | _weakRefs

## Additional Inherited Members
Public Types inherited from DistiAttributeBase
typedef unsigned int | CallbackID
| Type for unique identifiers.
Protected Member Functions inherited from WeakReferenceableMixin
| WeakReferenceableMixin ()
virtual | ~WeakReferenceableMixin ()

## Detailed Description

Give an alternate name to an existing attribute. This is used for compatability mostly. i.e. GlsTextBox "String" as an alias of "Text".

## Constructor & Destructor Documentation

## ◆ DistiAttributeAlias()

DistiAttributeAlias | ( | CallbackMethodCallerBase * | callback,
|  | const AttributeName & | name,
|  | const AttributeName & | originalName,
|  | DistiAttribDict * | dict
| ) |  |
| inline

Constructor

Parameters

  callback | The method function pointer to call back.
  name | The name to be given to this alias.
  originalName | The name of the original attribute to link to.
  dict | The attribute dictionary containing the original attribute.

## Member Function Documentation

## ◆ NotifyObservers()

virtual void NotifyObservers | ( |  | ) |
| override virtual

Triggers all observers to have their callbacks called. Typically called by the class that owns the DistiAttributeBase

Reimplemented from DistiAttributeBase.

## ◆ OkToWrite()

virtual bool OkToWrite | ( |  | ) | const
| 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.

## ◆ operator==()

virtual bool operator== | ( | const DistiAttributeBase & | r | ) |
| override virtual

Compares name and value.

Note
  This can be overriden to improve speed.

Parameters

  r | The attribute to compare.

Returns
  Whether or not the attributes have the same name and value.

Reimplemented from DistiAttributeBase.

## ◆ ReadValue()

virtual std::istream & ReadValue | ( | std::istream & | instr | ) |
| override virtual

Pure virtual because this is specific to the data type to be contained. This should be overridden to read the data from the stream. The value read could be encoded for being read from a file as a single string, or have its own special encoding specific to its underlying type. In the case of attribute strings, this will be the GLS file encoded value. The user is responsible for encoding the value themselves, or using WriteValue which should perform encoding to maintain symmetry.

Parameters

  instr | The stream to read from.

Returns
  The input stream in its current state.

Implements DistiAttributeBase.

## ◆ RegisterObserver()

virtual CallbackID RegisterObserver | ( | AttributeObserver * | observer | ) |
| override virtual

Register a callback that is called when the value of the attribute changes. If multiple oservers are registered, they will be notified in the order they registered. DistiAttributeBase takes ownership of the observer and will delete it.

Parameters

  observer | the observer to notify. It is automatically unregistered and destroyed when it becomes invalid.

Returns
  an id that can be used to unregister the observer

Reimplemented from DistiAttributeBase.

## ◆ ResetValueChanged()

virtual void ResetValueChanged | ( |  | ) |
| override virtual

Saves the current value for later comparison by ValueChanged().

Note
  This does nothing in the base class.

Reimplemented from DistiAttributeBase.

## ◆ Type()

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

This method isn't pure virtual to maintain backward compatibility with existing user code.

Returns
  The unmangled type name of the underlying storage.

Reimplemented from DistiAttributeBase.

## ◆ UnregisterObserver()

virtual void UnregisterObserver | ( | CallbackID | id | ) |
| override virtual

Unregister an observer

Parameters

  id | the id returned when the observer was registered

Reimplemented from DistiAttributeBase.

## ◆ ValueChanged()

virtual bool ValueChanged | ( |  | ) |
| override virtual

Note
  This is not implmented in the base class and will always return true if not overridden.

Returns
  True if the object's value has changed since calling ResetValueChanged().

Reimplemented from DistiAttributeBase.

## ◆ ValueFloat() [1/2]

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

Allows for faster access to floating-point types than the more generic stream operators.

Note
  This is only faster if it is overridden.

Returns
  The double value of this attribute.

Reimplemented from DistiAttributeBase.

## ◆ ValueFloat() [2/2]

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

Allows for faster access to floating-point types than the more generic stream operator.

Note
  This is only faster if it is overridden.

Parameters

  val | The new double value to set.

Reimplemented from DistiAttributeBase.

## ◆ ValueInt() [1/2]

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

Allows for faster access to integer types than the more generic stream operators.

Note
  This is only faster if it is overridden.

Returns
  The integer value of this attribute.

Reimplemented from DistiAttributeBase.

## ◆ ValueInt() [2/2]

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

Allows for faster access to integer types than the more generic stream operator.

Note
  This is only faster if it is overridden.

Parameters

  val | The new integer value to set.

Reimplemented from DistiAttributeBase.

## ◆ ValueString() [1/2]

virtual std::string ValueString | ( |  | ) |
| 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 | ) |
| 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 | ) |
| override virtual

Pure virtual because this is specific to the data type to be contained. This should be overridden to write the data to the stream. The value written could be encoded for writing to a file as a single string, or have its own special encoding specific to its underlying type. In the case of attribute strings, this will be the GLS file encoded value. The user is responsible for decoding the value themselves, or using ReadValue which should perform decoding to maintain symmetry.

Parameters

  outstr | The stream to write to.

Returns
  The output stream in its current state.

Implements DistiAttributeBase.

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

- gls_metadata_attributes.h