AlSettable
Encapsulates methods common to Alias objects that can belong to sets.
Synopsis
#include <AlSettable.h>
class AlSettable
virtual AlSet* firstSet() const;
virtual AlSet* nextSet( const AlSet* ) const;
virtual AlSet* prevSet( const AlSet* ) const;
virtual statusCode nextSetD( AlSet* ) const;
virtual statusCode prevSetD( AlSet* ) const;
virtual statusCode applyIteratorToSets( AlIterator*, int& );
statusCode removeFromAllSets();
statusCode removeFromSet( AlSet *set );
statusCode addToSet( AlSet *set );
AlSetMember* isSetMember( const AlSet *set ) const;
Description
This class is a base class for all objects which can be contained in a set. It provides the methods necessary to access the set methods of these objects.
AlSet* AlSettable::firstSet() const
Description
Finds and returns the first set of which this object is a member. If no such set can be found, NULL is returned.
AlSet* AlSettable::nextSet( const AlSet* lastSet ) const
Description
Finds and returns the set following the given one of which this object is a member. If no such set can be found, NULL is returned.
Argument
< lastSet - set to walk forward from
AlSet* AlSettable::prevSet( const AlSet* lastSet ) const
Description
Finds and returns the set preceding the given one of which this object is a member. If no such set can be found, NULL is returned.
Argument
< lastSet - set to walk forward from
statusCode AlSettable::nextSetD( AlSet* lastSet ) const
Description
Destructively points lastSet to the next set for the given object.
Argument
< lastSet - set to walk forward from
Return Codes
sSuccess - the set wrapper points to the next set
sInvalidArgument - ’lastSet’ is invalid or NULL
sFailure - there is no next set
statusCode AlSettable::prevSetD( AlSet* lastSet ) const
Description
Destructively points lastSet to the previous set for the given object. If this can not be accomplished, then lastSet is unaffected.
Argument
< lastSet - set to walk backward from
Return Codes
sSuccess - lastSet points to the previous set for the given object
sInvalidArgument - ’lastSet’ is invalid or NULL
sFailure - there is no previous set
statusCode AlSettable::applyIteratorToSets( AlIterator* iter, int &rc )
Description
Applies the given iterator to all the sets affected by this object. See the documentation for AlIterator.
Arguments
< iter - the iterator to apply to each set
> rc - the value returned from the last application of the iterator
Return Codes
sSuccess - the applyIteratorToSets exited normally
sFailure - applyIteratorToSets exited abnormally
sInvalidArgument - iter is NULL
statusCode AlSettable::addToSet( AlSet *set )
Description
Adds this object to the set
Arguments
< set - set to add to
Return Codes
sSuccess - successfully added to the set
sInsufficientMemory - not enough memory available
sObjectInSet - this object already belongs to this set
sObjectInAnotherSet - this set is exclusive and this object already belongs to another set
sObjectInExclusiveSet - this object already belongs to an exclusive set
sObjectAncestorInSet - an ancestor of this object already belongs to this set
sObjectDescendentInSet - a descendent of this object already belongs to this set
sInvalidArgument - set was NULL
sInvalidObject - this object was invalid
statusCode AlSettable::removeFromSet( AlSet *set )
Description
Removes this object from the set. If the given DAG node was not found in the set, then nothing is removed.
Arguments
< set - the set to remove from
Return Codes
sSuccess - if this object was removed successfully
sInvalidArgument - set was invalid
sObjectNotAMember - if the object was not found in this set
sInvalidObject - the set is invalid
AlSetMember *AlSettable::isSetMember( const AlSet *set ) const
Description
Returns TRUE if this object is a member of the given set.
Arguments
< set - the object to test membership in
statusCode AlSettable::removeFromAllSets()
Description
Removes this object from all sets in the universe that it may be in.
Return Codes
sSuccess - object was removed from all sets