rwlogo
Rogue Wave Views 5.5.1

Rogue Wave Views
Prototypes Package API Reference Guide

Product Documentation:

Rogue Wave Views
Documentation Home

IlvAccessorHolder Class Reference

Owns a list of objects of the class IlvAccessor class. More...

#include <ilviews/protos/accessor.h>

Inheritance diagram for IlvAccessorHolder:
IlvAccessible IlvGroup IlvProtoInstance IlvPrototype

List of all members.

Public Member Functions

virtual IlBoolean changeValue (const IlvValue &val)
 Changes the object's value. Both the name and the new value are contained in val.
virtual IlBoolean changeValues (const IlvValue *values, IlUShort count)
 Changes several values of an object in a single call. The default implementation calls changeValue for all values.
virtual IlUInt compareValues (const IlvAccessible *ref, IlvValue *values, IlUShort count, IlvValueArray &diffs) const
 Compares two objects and returns the differing attributes.
virtual void getAccessors (const IlSymbol *const **accessors, const IlvValueTypeClass *const **types, IlUInt &count) const
 Returns the names of all the accessors known by this object.
virtual IlBoolean isOutputValue (const IlSymbol *valueName) const
 Indicates whether value designates an accessor that can generate notifying values.
virtual IlvAccessornextAccessor (IlAny &link) const =0
 Iterator through the accessors.
virtual IlvValuequeryValue (IlvValue &val) const
 Queries the value designated by value from the object. Both the value and the value type are stored in value.
virtual void queryValues (IlvValue *values, IlUShort count) const
 Queries several values in a single call. The default implementation calls queryValue for each value.

Friends

class IlvAccessor

Detailed Description

Owns a list of objects of the class IlvAccessor class.

Library: ilvproto

An IlvAccessorHolder owns a list of objects of the IlvAccessor class. Each of these IlvAccessor objects defines an accessor that is handled by the IlvAccessorHolder object. Therefore, the accessors in an IlvAccessorHolder can be defined dynamically by adding or removing IlvAccessor objects to and from the IlvAccessorHolder. The IlvAccessorHolder class overrides the changeValue[s], queryValue[s], getAccessors, and compareValues methods of the IlvAccessible class. Each of these methods looks at all the IlvAccessor objects owned by the IlvAccessorHolder, finds all the accessors that match the requested values, and calls the corresponding method of the matching IlvAccessors. IlvAccessorHolder is an abstract class that does not define the way an IlvAccessor is actually stored in the object. To do so, the nextAccessor method must be overridden.

Accessors are base 'bricks' of behavior that hold data (in which case they are called 'attributes') or perform side effects. Therefore, an attribute is a name that can be referenced to store data or perform side effects when a call to changeValue or queryValue is made. An attribute can consist of several accessors, each of them defining part of what the attribute is meant to do.

See also:
IlvAccessor, IlvGroup, IlvPrototype, IlvProtoInstance.

Member Function Documentation

virtual IlBoolean IlvAccessorHolder::changeValue ( const IlvValue v  )  [virtual]

Changes the object's value. Both the name and the new value are contained in val.

Parameters:
v The value to be set (both name and value).
Returns:
Whether the object considered the operation successful or not.

Reimplemented from IlvAccessible.

Reimplemented in IlvGroup.

virtual IlBoolean IlvAccessorHolder::changeValues ( const IlvValue v,
IlUShort  c 
) [virtual]

Changes several values of an object in a single call. The default implementation calls changeValue for all values.

Parameters:
v The changed values (both name and values).
c The number of values.
Returns:
Whether the object considered the operation successful or not.

Reimplemented from IlvAccessible.

Reimplemented in IlvGroup.

virtual IlUInt IlvAccessorHolder::compareValues ( const IlvAccessible ref,
IlvValue values,
IlUShort  count,
IlvValueArray diffs 
) const [virtual]

Compares two objects and returns the differing attributes.

Compares the values of accessors known by this object with the corresponding values in the object ref. The values that differ are stored in diffs. The values stored are taken from the calling object (this), not from ref. The first method calls the getAccessors method to get the list of all known accessors, while the second only compares the provided values. Then, both methods call compareValues to actually compare the values.

Returns:
The number of differing attributes.
Parameters:
ref The object to compare to.
any Specifies whether to compare values of unknown types and pointer types.
diffs The differing attributes.
values The attributes to compare in both objects.
count The number of attributes to compare.

Reimplemented from IlvAccessible.

virtual void IlvAccessorHolder::getAccessors ( const IlSymbol *const **  a,
const IlvValueTypeClass *const **  t,
IlUInt c 
) const [virtual]

Returns the names of all the accessors known by this object.

Subclasses of IlvAccessible must override this method by calling the static method DeclareAccessor for each accessor handled by the subclass. The returned arrays are filled by the method and must not be freed.

Parameters:
a Pointer to an array filled on return with the names of the accessors defined for the object.
t Pointer to an array filled on return with the type of each accessor.
c Number of accessors, set by the method.

Implements IlvAccessible.

Reimplemented in IlvGroup.

virtual IlBoolean IlvAccessorHolder::isOutputValue ( const IlSymbol value  )  const [virtual]

Indicates whether value designates an accessor that can generate notifying values.

Returns:
IlTrue if value designates an accessor that can generate notifying values, that is, a value for which pushValue calls may be issued. The default implementation returns IlFalse. Subclasses such as IlvAccessorHolder redefine this method.
Parameters:
value Name of the accessor.
See also:
pushValue.

Reimplemented from IlvAccessible.

Reimplemented in IlvGroup.

virtual IlvAccessor* IlvAccessorHolder::nextAccessor ( IlAny link  )  const [pure virtual]

Iterator through the accessors.

Returns the next accessor from a list of accessors owned by the IlvAccessorHolder object. If link is NULL, the first accessor is returned, and link is modified so that the next call to nextAccessor will return all the accessors successively. When all the accessors have been returned, the method returns 0.

Implemented in IlvGroup.

virtual IlvValue& IlvAccessorHolder::queryValue ( IlvValue value  )  const [virtual]

Queries the value designated by value from the object. Both the value and the value type are stored in value.

Parameters:
value The queried value name.
Returns:
The value passed in argument, set to the object value.

Reimplemented from IlvAccessible.

Reimplemented in IlvGroup.

virtual void IlvAccessorHolder::queryValues ( IlvValue v,
IlUShort  c 
) const [virtual]

Queries several values in a single call. The default implementation calls queryValue for each value.

Parameters:
v The array of value names to be queried
c The number of values to be queried.

Reimplemented from IlvAccessible.

Reimplemented in IlvGroup.


© Copyright 2012, Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave is a registered trademark of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.