RPtrHashMap Class Reference
class RPtrHashMap : public RHashTableBase
|
A templated class which implements an associative array with key type K and value type V, using a probe-sequence hash table. Neither the key nor value objects are copied into the table when they are added - only pointers are stored.
Nested Classes and Structures
Inherited Functions
|
|
RHashTableBase::ConsistencyCheck(TUint32 *,TUint32 *,TUint32,TUint32 *)
|
|
RHashTableBase::Find(const TAny *,TInt)const
|
|
RHashTableBase::FindL(const TAny *,TInt)const
|
|
RHashTableBase::Insert(const TAny *,TAny *&)
|
|
RHashTableBase::PtrInsert(const TAny *,const TAny *)
|
|
RHashTableBase::PtrInsertL(const TAny *,const TAny *)
|
|
RHashTableBase::RHashTableBase(TGeneralHashFunction32,TGeneralIdentityRelation,TInt,TInt)
|
|
RHashTableBase::Remove(const TAny *)
|
|
RHashTableBase::ValueInsert(const TAny *,TInt,const TAny *,TInt,TInt)
|
|
RHashTableBase::ValueInsertL(const TAny *,TInt,const TAny *,TInt,TInt)
|
Constructor & Destructor Documentation
RPtrHashMap(const THashFunction32< K > &, const TIdentityRelation< K > &)
Construct an associative array of key-value pairs of type (K,V) using a specified hash function and identity relation. The array initially contains no key-value pairs.
Parameters
const
THashFunction32
< K > & aHash
|
The hash function used to hash the key objects of type K.
|
const
TIdentityRelation
< K > & aIdentity
|
The identity relation used to determine if two key objects of type K should be considered identical.
|
RPtrHashMap()
Construct an associative array of key-value pairs of type (K,V) using a default hash function and identity relation. The array initially contains no key-value pairs.
Member Functions Documentation
Close()
Free all memory used by this array. Returns the array to the same state it had following construction.
Count()
TInt
|
Count
|
(
|
)
|
const [inline]
|
Query the number of key-value pairs in the array.
Find(const K &)
const V *
|
Find
|
(
|
const K &
|
aKey
|
)
|
const [inline]
|
Look up a specified key in the associative array and return a pointer to the corresponding value.
Parameters
const K & aKey
|
The key object of type K to look up.
|
Find(const K &)
V *
|
Find
|
(
|
const K &
|
aKey
|
)
|
[inline]
|
Look up a specified key in the associative array and return a pointer to the corresponding value.
Parameters
const K & aKey
|
The key object of type K to look up.
|
FindL(const K &)
const V &
|
FindL
|
(
|
const K &
|
aKey
|
)
|
const [inline]
|
Look up a specified key in the associative array and return a pointer to the corresponding value.
-
leave
-
KErrNotFound if the specified key object was not found.
Parameters
const K & aKey
|
The key object of type K to look up.
|
FindL(const K &)
V &
|
FindL
|
(
|
const K &
|
aKey
|
)
|
[inline]
|
Look up a specified key in the associative array and return a pointer to the corresponding value.
-
leave
-
KErrNotFound if the specified key object was not found.
Parameters
const K & aKey
|
The key object of type K to look up.
|
Insert(const K *, const V *)
TInt
|
Insert
|
(
|
const K *
|
aKey,
|
|
const V *
|
aValue
|
|
)
|
[inline]
|
Insert a key-value pair into the array.
If the specified key object is not found in the array, a pointer to the key object along with a pointer to the value object are added to the array and KErrNone is returned. If the specified key object is found in the array, the existing pointers to both the key and value objects are replaced by the provided pointers and KErrNone is returned. In both cases only pointers are stored in the array - the objects themselves are not copied.
Parameters
const K * aKey
|
A pointer to the key object of type K to add to the array.
|
const V * aValue
|
A pointer to the value object of type V to associate with aKey.
|
InsertL(const K *, const V *)
void
|
InsertL
|
(
|
const K *
|
aKey,
|
|
const V *
|
aValue
|
|
)
|
[inline]
|
Insert a key-value pair into the array.
If the specified key object is not found in the array, a pointer to the key object along with a pointer to the value object are added to the array and KErrNone is returned. If the specified key object is found in the array, the existing pointers to both the key and value objects are replaced by the provided pointers and KErrNone is returned. In both cases only pointers are stored in the array - the objects themselves are not copied.
-
leave
-
KErrNoMemory if memory could not be allocated to store the pointers aKey and aValue.
Parameters
const K * aKey
|
A pointer to the key object of type K to add to the array.
|
const V * aValue
|
A pointer to the value object of type V to associate with aKey.
|
Remove(const K *)
TInt
|
Remove
|
(
|
const K *
|
aKey
|
)
|
[inline]
|
Remove a key-value pair from the array.
Parameters
const K * aKey
|
A pointer to the key to be removed.
|
Reserve(TInt)
Expand the array to accommodate a specified number of key-value pairs. 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.
Parameters
TInt
aCount
|
The number of key-value pairs for which space should be allocated.
|
ReserveL(TInt)
void
|
ReserveL
|
(
|
TInt
|
aCount
|
)
|
[inline]
|
Expand the array to accommodate a specified number of key-value pairs. 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.
Parameters
TInt
aCount
|
The number of key-value pairs for which space should be allocated.
|
ResetAndDestroy()
Deletes all the key objects of type K and corresponding value objects of type V to which pointers are stored in this array. Then frees all the memory used by the array and returns the array to the same state as immediately following construction.
Member Type Definitions Documentation
Typedef TIter
A class which allows iteration over the elements of a RPtrHashMap<K,V> class.
The array being iterated over may not be modified while an iteration is in progress or the iteration operations may malfunction or panic.
TPtrHashMapIter<K,V>
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.