|
||
class TKeyArrayPak : public TKeyArrayVar;
Defines the characteristics of a key used to access the elements of packed arrays.
An object of this type can represent three categories of key, depending on the constructor used:
1. a descriptor key
2. a text key
3. a numeric key.
The InsertIsqL(), Find() and FindIsqL() member functions of the CArrayPakFlat
class hierarchy need a TKeyArrayPak object as an argument to define the location and type of key within an array element.
Note that a TKeyArrayVar
object is required for sorting a packed array. The implementation of the SortL() member function of the CArrayPakFlat
class constructs a temporary CArrayVarFlat
object which requires the TKeyArrayVar
object.
TKey
-
Defines the characteristics of a key used to access the elements of an array.
TKeyArrayVar
- ...
TKeyArrayPak
- ...
Defined in TKeyArrayPak
:
At(TInt)const
Gets a pointer to the key of a specified array element.Set(CBufBase *)
TKeyArrayPak(TInt,TKeyCmpNumeric)
Constructs the characteristics of a numeric key.TKeyArrayPak(TInt,TKeyCmpText)
Constructs the characteristics of a descriptor key.TKeyArrayPak(TInt,TKeyCmpText,TInt)
Constructs the characteristics of a text key.Inherited from TKey
:
Compare(TInt,TInt)const
Compares the keys of two array elements.SetPtr(const TAny *)
Sets the pointer to a sample element whose key is to be used for comparison.TKey(TInt,TKeyCmpNumeric)
Constructs the characteristics of a numeric key.TKey(TInt,TKeyCmpText)
Constructs the characteristics of a descriptor type key.TKey(TInt,TKeyCmpText,TInt)
Constructs the characteristics of a text key.iCmpType
iKeyLength
iKeyOffset
iPtr
Inherited from TKeyArrayVar
:
TKeyArrayVar(TInt,TKeyCmpNumeric)
Constructs the characteristics of a numeric key.TKeyArrayVar(TInt,TKeyCmpText)
Constructs the characteristics of a descriptor key.TKeyArrayVar(TInt,TKeyCmpText,TInt)
Constructs the characteristics of a text key.iBase
TKeyArrayVar
...IMPORT_C TKeyArrayPak(TInt anOffset, TKeyCmpText aType);
Constructs the characteristics of a descriptor key.
No length value is passed as this is taken from the descriptor type key.
|
TKeyCmpText
...IMPORT_C TKeyArrayPak(TInt anOffset, TKeyCmpText aType, TInt aLength);
Constructs the characteristics of a text key.
|
TKeyCmpText
...IMPORT_C TKeyArrayPak(TInt anOffset, TKeyCmpNumeric aType);
Constructs the characteristics of a numeric key.
|
protected: IMPORT_C virtual TAny* At(TInt anIndex) const;
Gets a pointer to the key of a specified array element.
The default implementation raises a USER 35 panic.
The function is called by TKey::Compare(TInt,TInt)const
to compare the keys of two elements.
The implementation provided by a derived class must convert the index to a pointer to the key within the corresponding element.
The implementation depends on the design of the array but, as general rule, use the index value to get a pointer to the corresponding
element and then add the TKey
protected data member iKeyOffset to this pointer to get a pointer to the key itself.
By convention, the index value is relative to zero; i.e. a zero value refers to the first element in the array. By this convention, the index can take any value between zero and the number of elements within the array minus one.
The function must also handle the special index value KIndexPtr. When this value is passed, the function should return a pointer
to the key within the sample element. A pointer to the sample element is held in the protected data member iPtr and can be
set up using TKey::SetPtr(const TAny *)
.
The implementation of this function also assumes that the derived class has a pointer to the array itself or has a function for finding it.
|
|
|
TKey::Compare(TInt,TInt)const
Compares the keys of two array elements.TKey::SetPtr(const TAny *)
Sets the pointer to a sample element whose key is to be used for comparison.KIndexPtr
...