| GL Studio C++ Runtime API

Public Member Functions | Protected Types | Protected Attributes | List of all members
DistiAttributeVertexArray< Vertex > Class Reference

`#include <gls_metadata_attributes.h>`

Inheritance diagram for DistiAttributeVertexArray< Vertex >:

## Public Member Functions
void | SetCompatabilityMode (bool mode)
| DistiAttributeVertexArray (CallbackMethodCallerBase *callback, const AttributeName &name, Vertex **attribPtr, unsigned int *numVertices)
| DistiAttributeVertexArray (CallbackMethodCallerBase *callback, const AttributeName &name, Vertex *attribPtr, unsigned int numElements)
virtual bool | OkToWrite () const override
virtual std::ostream & | WriteValue (std::ostream &outstr) override
virtual std::istream & | ReadValue (std::istream &instr) override
virtual bool | operator== (const DistiAttributeBase &rArg) override
std::string | Type () const 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 Types
typedef Vertex * | Tptr
| Shorthand typedef for a pointer to a vertex.

## Protected Attributes
Vertex ** | _attribPtr
| Underlying storage for this attribute.
unsigned int * | _numVertices
| The number of vertices in a variable length array.
unsigned int | _numElements
| The number of vertices in a fixed length array.
bool | _fixedArray
| If true, this array is not resizable.
bool | _compatabilityMode
| If true, backward compatibility mode will be used, values will be read with scanf.
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

An attribute for either a Vector or Vertex

## Constructor & Destructor Documentation

## ◆ DistiAttributeVertexArray() [1/2]

DistiAttributeVertexArray | ( | CallbackMethodCallerBase * | callback,
|  | const AttributeName & | name,
|  | Vertex ** | attribPtr,
|  | unsigned int * | numVertices
| ) |  |
| inline

Constructor, for variable length arrays.

Parameters

  callback | The callback method function pointer to call back.
  name | The name of this new attribute.
  attribPtr | A pointer to existing storage for this attribute.
  numVertices | The number of elements in the existing storage.

## ◆ DistiAttributeVertexArray() [2/2]

DistiAttributeVertexArray | ( | CallbackMethodCallerBase * | callback,
|  | const AttributeName & | name,
|  | Vertex * | attribPtr,
|  | unsigned int | numElements
| ) |  |
| inline

Constructor, for fixed arrays.

Parameters

  callback | The callback method function pointer to call back.
  name | The name of this new attribute.
  attribPtr | A pointer to existing storage for this attribute.
  numElements | The number of elements in the existing storage.

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

## ◆ operator==()

virtual bool operator== | ( | const DistiAttributeBase & | r | ) |
| inline 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 | ) |
| inline 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.

## ◆ SetCompatabilityMode()

void SetCompatabilityMode | ( | bool | mode | ) |
| inline

Set the compatibility parsing mode for this attribute.

Parameters

  mode | The new mode to set.

## ◆ Type()

std::string Type | ( |  | ) | const
| inline 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.

## ◆ WriteValue()

virtual std::ostream & WriteValue | ( | std::ostream & | outstr | ) |
| inline 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