GL Studio C++ Runtime API
DistiAttributeAlias Class Reference

#include <gls_metadata_attributes.h>

Inheritance diagram for DistiAttributeAlias:
DistiAttributeBase WeakReferenceableMixin WeakReferenceable

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
 
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 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
 

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
callbackThe method function pointer to call back.
nameThe name to be given to this alias.
originalNameThe name of the original attribute to link to.
dictThe attribute dictionary containing the original attribute.

Member Function Documentation

◆ NotifyObservers()

virtual void NotifyObservers ( )
overridevirtual

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
overridevirtual

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)
overridevirtual

Compares name and value.

Note
This can be overriden to improve speed.
Parameters
rThe 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)
overridevirtual

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
instrThe stream to read from.
Returns
The input stream in its current state.

Implements DistiAttributeBase.

◆ RegisterObserver()

virtual CallbackID RegisterObserver ( AttributeObserver observer)
overridevirtual

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
observerthe 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 ( )
overridevirtual

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

Note
This does nothing in the base class.

Reimplemented from DistiAttributeBase.

◆ UnregisterObserver()

virtual void UnregisterObserver ( CallbackID  id)
overridevirtual

Unregister an observer

Parameters
idthe id returned when the observer was registered

Reimplemented from DistiAttributeBase.

◆ ValueChanged()

virtual bool ValueChanged ( )
overridevirtual
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 ( )
overridevirtual

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)
overridevirtual

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

Note
This is only faster if it is overridden.
Parameters
valThe new double value to set.

Reimplemented from DistiAttributeBase.

◆ ValueInt() [1/2]

virtual long ValueInt ( )
overridevirtual

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)
overridevirtual

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

Note
This is only faster if it is overridden.
Parameters
valThe new integer value to set.

Reimplemented from DistiAttributeBase.

◆ ValueString() [1/2]

virtual std::string ValueString ( )
overridevirtual

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)
overridevirtual

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)
overridevirtual

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
outstrThe 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: