RPtrHashSet Class Reference

#include <e32hashtab.h>

Link against: glxupnpcommandhandler.lib

class RPtrHashSet : public RHashTableBase

Inherits from

Detailed Description

A templated class which implements an unordered extensional set of objects of type T using a probe-sequence hash table. The objects are not copied into the set when they are added; rather the set stores pointers to the contained objects.

Member Type Definition Documentation

Typedef TIter

typedef TPtrHashSetIter< T >TIter

A class which allows iteration over the elements of a RPtrHashSet<T> class.

The set being iterated over may not be modified while an iteration is in progress or the iteration operations may malfunction or panic.

See also: TPtrHashSetIter<T>

Constructor & Destructor Documentation

RPtrHashSet ( const THashFunction32< T > &, const TIdentityRelation< T > & )

RPtrHashSet(const THashFunction32< T > &aHash,
const TIdentityRelation< T > &aIdentity
)[inline]

Construct a set of objects of type T using a specified hash function and identity relation. The set is initially empty.

ParameterDescription
aHashThe hash function used to hash the objects of type T.
aIdentityThe identity relation used to determine if two objects of type T should be considered identical.

RPtrHashSet ( )

RPtrHashSet()[inline]

Construct a set of objects of type T using a default hash function and identity relation. The set is initially empty.

Member Function Documentation

Close ( )

voidClose()[inline]

Reimplemented from RHashTableBase::Close()

Free all memory used by this set. Returns the set to the same state it had following construction.

Count ( )

TInt Count()const [inline]

Reimplemented from RHashTableBase::Count()const

Query the number of elements in the set.

Returns: The number of elements currently in the set.

Find ( const T & )

const T *Find(const T &aKey)const [inline]

Locate a specified element in the set.

ParameterDescription
aKeyThe object of type T to search for.

Returns: A pointer to the specified object, if it is in the set. The object may not be modified via this pointer. NULL if the specified object is not a member of this set.

Find ( const T & )

T *Find(const T &aKey)[inline]

Locate a specified element in the set.

ParameterDescription
aKeyThe object of type T to search for.

Returns: A pointer to the specified object, if it is in the set. The object may be modified via this pointer. Care should be taken not to modify any parts of the object which are used by either the hash function or the identity relation for this set. If this is done the set may become inconsistent, resulting in malfunctions and/or panics at a later time. NULL if the specified object is not a member of this set.

FindL ( const T & )

const T &FindL(const T &aKey)const [inline]

Locate a specified element in the set.

leave
KErrNotFound if the specified object is not a member of this set.
ParameterDescription
aKeyThe object of type T to search for.

Returns: A reference to the specified object, if it is in the set. The object may not be modified via this reference.

FindL ( const T & )

T &FindL(const T &aKey)[inline]

Locate a specified element in the set.

leave
KErrNotFound if the specified object is not a member of this set.
ParameterDescription
aKeyThe object of type T to search for.

Returns: A reference to the specified object, if it is in the set. The object may be modified via this reference. Care should be taken not to modify any parts of the object which are used by either the hash function or the identity relation for this set. If this is done the set may become inconsistent, resulting in malfunctions and/or panics at a later time.

Insert ( const T * )

TInt Insert(const T *aKey)[inline]

Insert an element into the set.

If the specified object is not currently a member of the set, a pointer to the object is added to the set and KErrNone is returned. If the specified object is currently a member of the set, the existing pointer to the object is replaced by the provided pointer and KErrNone is returned. In both cases only a pointer to the object is stored - the object is never copied.

ParameterDescription
aKeyA pointer to the object of type T to add to the set.

Returns: KErrNone if the object was added successfully. KErrNoMemory if memory could not be allocated to store the pointer to the new object.

InsertL ( const T * )

voidInsertL(const T *aKey)[inline]

Insert an element into the set.

If the specified object is not currently a member of the set, a pointer to the object is added to the set and KErrNone is returned. If the specified object is currently a member of the set, the existing pointer to the object is replaced by the provided pointer and KErrNone is returned. In both cases only a pointer to the object is stored - the object is never copied.

leave
KErrNoMemory if memory could not be allocated to store the pointer to the new object.
ParameterDescription
aKeyA pointer to the object of type T to add to the set.

Remove ( const T * )

TInt Remove(const T *aKey)[inline]

Remove an element from the set.

ParameterDescription
aKeyA pointer to the object to be removed.

Returns: KErrNone if the object was removed successfully. KErrNotFound if the object was not present in the set.

Reserve ( TInt )

TInt Reserve(TIntaCount)[inline]

Reimplemented from RHashTableBase::Reserve(TInt)

Expand the set to accommodate a specified number of elements. If the set already has enough space for the specified number of elements, no action is taken. Any elements already in the set are retained.

ParameterDescription
aCountThe number of elements for which space should be allocated.

Returns: KErrNone if the operation completed successfully. KErrNoMemory if sufficient memory could not be allocated.

ReserveL ( TInt )

voidReserveL(TIntaCount)[inline]

Reimplemented from RHashTableBase::ReserveL(TInt)

Expand the set to accommodate a specified number of elements. If the set already has enough space for the specified number of elements, no action is taken. Any elements already in the set are retained.

leave
KErrNoMemory if sufficient memory could not be allocated.
ParameterDescription
aCountThe number of elements for which space should be allocated.

ResetAndDestroy ( )

voidResetAndDestroy()

Deletes all the objects of type T to which pointers are stored in this set. Then frees all the memory used by the set and returns the set to the same state as immediately following construction.