GL Studio C++ Runtime API
DistiAttributeUCharOrBool Class Reference

#include <gls_metadata_attributes.h>

Inheritance diagram for DistiAttributeUCharOrBool:
DistiAttribute< unsigned char > DistiAttributeBase WeakReferenceableMixin WeakReferenceable

Public Member Functions

 DistiAttributeUCharOrBool (CallbackMethodCallerBase *callback, const AttributeName &name, unsigned char *attribPtr)
 
 DistiAttributeUCharOrBool (CallbackMethodCallerBase *callback, const AttributeName &name, unsigned char value)
 
virtual DistiAttributeBaseoperator= (const DistiAttributeBase &oldClass) override
 
virtual long ValueInt () override
 
virtual void ValueInt (long val) override
 
virtual std::ostream & WriteValue (std::ostream &outstr) override
 
virtual std::istream & ReadValue (std::istream &instr) override
 
- Public Member Functions inherited from DistiAttribute< unsigned char >
 DistiAttribute (CallbackMethodCallerBase *callback, const AttributeName &name, unsigned char *attribPtr)
 
 DistiAttribute (CallbackMethodCallerBase *callback, const AttributeName &name, const unsigned char &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 unsigned char Value ()
 
virtual void Value (const unsigned char &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
 

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 ()
 
- Protected Attributes inherited from DistiAttribute< unsigned char >
unsigned char * _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

Special case for transitioning from a bool to an int Reads True or False, or integers. Writes only integers.

Constructor & Destructor Documentation

◆ DistiAttributeUCharOrBool() [1/2]

DistiAttributeUCharOrBool ( CallbackMethodCallerBase callback,
const AttributeName name,
unsigned char *  attribPtr 
)

Constructor, uses existing storage.

Parameters
callbackThe callback function pointer to call back.
nameThe name of this new attribute.
attribPtrA pointer to a pointer to existing storage for this attribute.

◆ DistiAttributeUCharOrBool() [2/2]

DistiAttributeUCharOrBool ( CallbackMethodCallerBase callback,
const AttributeName name,
unsigned char  value 
)

Constructor, creates local storage.

Parameters
callbackThe callback function pointer to call back.
nameThe name of this new attribute.
valueThe initial value for this attribute.

Member Function Documentation

◆ operator=()

virtual DistiAttributeBase & operator= ( const DistiAttributeBase oldClass)
overridevirtual

This will perform the copy using ReadValue() and WriteValue() It can be overridden by any dervied classes to do a smarter more efficent copy.

Parameters
oldClassThe object to copy from.
Returns
The resulting object (this).

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.

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

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