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.
Warning: be careful when using this iterator. If you modify the actual set during an iteration, it is possible that this routine
will end up pointing to invalid data and send you garbage. This should not happen when simply applying transformations to
a set. But deleting a set using this method is considered unsafe. If you do it, return immediately.
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