GL Studio API
Public Member Functions | Protected Attributes | List of all members
DistiAttribute< T > Class Template Reference

#include <disti_metadata.h>

Inheritance diagram for DistiAttribute< T >:
DistiAttributeBase WeakReferenceableMixin WeakReferenceable DistiAttributeNeverWrite< T > DistiAttributeProperty< containerT, T, SetArgT >

Public Member Functions

 DistiAttribute (CallbackMethodCallerBase *callback, const AttributeName &name, T *attribPtr)
 
 DistiAttribute (CallbackMethodCallerBase *callback, const AttributeName &name, const T &initialValue)
 
virtual bool Copyable () const
 
virtual long ValueInt ()
 
virtual void ValueInt (long val)
 
virtual double ValueFloat ()
 
virtual void ValueFloat (double val)
 
virtual DistiAttributeBaseoperator= (const DistiAttributeBase &oldClass)
 
virtual std::ostream & WriteValue (std::ostream &outstr)
 
virtual std::istream & ReadValue (std::istream &instr)
 
virtual T Value ()
 
virtual void Value (const T &val)
 
virtual bool operator== (const DistiAttributeBase &rArg)
 
virtual ~DistiAttribute ()
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
std::ostream & WriteValue (std::ostream &outstr)
 
template<>
std::istream & ReadValue (std::istream &instr)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
template<>
std::ostream & WriteValue (std::ostream &outstr)
 
template<>
std::istream & ReadValue (std::istream &instr)
 
template<>
std::istream & ReadValue (std::istream &instr)
 
template<>
std::istream & ReadValue (std::istream &instr)
 
template<>
long ValueInt ()
 
template<>
void ValueInt (long val)
 
- Public Member Functions inherited from DistiAttributeBase
 DistiAttributeBase (CallbackMethodCallerBase *callback, const AttributeName &name, bool localStorage)
 
const AttributeNameName () const
 
AttributeNameName ()
 
bool LocalStorage () const
 
virtual bool OkToWrite () const
 
virtual bool ValueChanged ()
 
virtual void ResetValueChanged ()
 
virtual std::string ValueString ()
 
virtual void ValueString (const std::string &s)
 
virtual void CallCallback ()
 
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)
 
void NotifyWeakReferenceDestroyed (WeakReference *ref)
 

Protected Attributes

T * _attribPtr
 
int _precision
 
- Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * _weakRefs
 

Additional Inherited Members

- Public Types inherited from DistiAttributeBase
typedef unsigned int CallbackID
 Type for unique identifiers.
 
- Public Attributes inherited from DistiAttributeBase
AttributeName _name
 
CallbackMethodCallerBase_callback
 
bool _localStorage
 
- Protected Member Functions inherited from WeakReferenceableMixin
 WeakReferenceableMixin (void)
 
virtual ~WeakReferenceableMixin ()
 

Detailed Description

template<class T>
class disti::DistiAttribute< T >

A templated class for creating attributes.

Constructor & Destructor Documentation

DistiAttribute ( CallbackMethodCallerBase callback,
const AttributeName name,
T *  attribPtr 
)
inline

Constructor Keeps a pointer to the specified type

Parameters
callbackThe method to call when the value changes. A duplicate of the CallbackMethodCallerBase is created and stored internally.
nameThe name of the attribute
attribPtrThe address of the storage.
DistiAttribute ( CallbackMethodCallerBase callback,
const AttributeName name,
const T &  initialValue 
)
inline

Constructor Actually creates storage of the specified type

Parameters
callbackThe method to call when the value changes. A duplicate of the CallbackMethodCallerBase is created and stored internally.
nameThe name of the attribute
initialValueThe initial value of the intenally stored variable.
virtual ~DistiAttribute ( )
inlinevirtual

Destructor deletes local storage if we created it

Member Function Documentation

virtual bool Copyable ( ) const
inlinevirtual

Its not a word, but it means able to be copied This should return true if it makes sense for the data to be copied. By default, will return true for this template. It is overridden here to allow for template specialization

Reimplemented from DistiAttributeBase.

virtual DistiAttributeBase& operator= ( const DistiAttributeBase oldClass)
inlinevirtual

This will perform the copy using Value() and Value(val)

Reimplemented from DistiAttributeBase.

Reimplemented in DistiAttributeUCharOrBool.

virtual bool operator== ( const DistiAttributeBase rArg)
inlinevirtual

Performs type specific comparison. This results in faster comparisons than the base class

Reimplemented from DistiAttributeBase.

std::istream & ReadValue ( std::istream &  instr)
inlinevirtual

Pure virtual because this is specific to the data type to be contained. This should be overridden to read the data from the stream

Implements DistiAttributeBase.

std::istream & ReadValue ( std::istream &  instr)
inlinevirtual

Pure virtual because this is specific to the data type to be contained. This should be overridden to read the data from the stream

Implements DistiAttributeBase.

std::istream & ReadValue ( std::istream &  instr)
inlinevirtual

Pure virtual because this is specific to the data type to be contained. This should be overridden to read the data from the stream

Implements DistiAttributeBase.

std::istream & ReadValue ( std::istream &  instr)
inlinevirtual

Pure virtual because this is specific to the data type to be contained. This should be overridden to read the data from the stream

Implements DistiAttributeBase.

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

Reads the data from the stream The ReadValue call shall consume only what it needs. It is the responsibility of the calling function to read to the end of line, or to clean up from a bad read. The calling function will also ensure that the data starts as the next byte in the stream.

Implements DistiAttributeBase.

Reimplemented in DistiAttributeProperty< containerT, T, SetArgT >, DistiAttributeLocation, DistiAttributeStdString, DistiAttributeEncodedStdString, and DistiAttributeUCharOrBool.

virtual T Value ( )
inlinevirtual

Allows for type specific access to the data

Reimplemented in DistiAttributeProperty< containerT, T, SetArgT >.

virtual void Value ( const T &  val)
inlinevirtual

Allows for type specific access to the data

Reimplemented in DistiAttributeProperty< containerT, T, SetArgT >.

virtual double ValueFloat ( )
inlinevirtual

Allows for faster access to integer types than the more generic GetValueSimple. However, it is only faster if it is overridden. It is overridden here to allow for template specialization

Reimplemented from DistiAttributeBase.

Reimplemented in DistiAttributeProperty< containerT, T, SetArgT >.

virtual void ValueFloat ( double  val)
inlinevirtual

Allows for faster access to integer types than the more generic SetValueSimple. However, it is only faster if it is overridden. It is overridden here to allow for template specialization

Reimplemented from DistiAttributeBase.

Reimplemented in DistiAttributeProperty< containerT, T, SetArgT >.

long ValueInt ( )
inlinevirtual

Allows for faster access to integer types than the more generic stream operators. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

void ValueInt ( long  val)
inlinevirtual

Allows for faster access to integer types than the more generic stream operator. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

long ValueInt ( )
inlinevirtual

Allows for faster access to integer types than the more generic stream operators. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

void ValueInt ( long  val)
inlinevirtual

Allows for faster access to integer types than the more generic stream operator. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

long ValueInt ( )
inlinevirtual

Allows for faster access to integer types than the more generic stream operators. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

void ValueInt ( long  val)
inlinevirtual

Allows for faster access to integer types than the more generic stream operator. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

long ValueInt ( )
inlinevirtual

Allows for faster access to integer types than the more generic stream operators. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

void ValueInt ( long  val)
inlinevirtual

Allows for faster access to integer types than the more generic stream operator. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

long ValueInt ( )
inlinevirtual

Allows for faster access to integer types than the more generic stream operators. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

void ValueInt ( long  val)
inlinevirtual

Allows for faster access to integer types than the more generic stream operator. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

long ValueInt ( )
inlinevirtual

Allows for faster access to integer types than the more generic stream operators. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

void ValueInt ( long  val)
inlinevirtual

Allows for faster access to integer types than the more generic stream operator. However, it is only faster if it is overridden.

Reimplemented from DistiAttributeBase.

virtual long ValueInt ( )
inlinevirtual

Allows for faster access to integer types than the more generic GetValueSimple. However, it is only faster if it is overridden. It is overridden here to allow for template specialization

Reimplemented from DistiAttributeBase.

Reimplemented in DistiAttributeProperty< containerT, T, SetArgT >, and DistiAttributeUCharOrBool.

virtual void ValueInt ( long  val)
inlinevirtual

Allows for faster access to integer types than the more generic SetValueSimple. However, it is only faster if it is overridden. It is overridden here to allow for template specialization

Reimplemented from DistiAttributeBase.

Reimplemented in DistiAttributeProperty< containerT, T, SetArgT >, and DistiAttributeUCharOrBool.

std::ostream & WriteValue ( std::ostream &  outstr)
inlinevirtual

Pure virtual because this is specific to the data type to be contained. This should be overridden to write the data to the stream

Implements DistiAttributeBase.

std::ostream & WriteValue ( std::ostream &  outstr)
inlinevirtual

Pure virtual because this is specific to the data type to be contained. This should be overridden to write the data to the stream

Implements DistiAttributeBase.

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

Member Data Documentation

T* _attribPtr
protected

Points to the actual storage

int _precision
protected

Allows for setting of precision for floating point numbers


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