»
Symbian OS v9.3 »
Symbian OS reference »
C++ component reference »
Base E32_EKA2 »
Mem
Location:
e32std.h
Link against: euser.lib
class Mem;
Description
Contains a set of static functions which perform manipulation of data in memory.
The arguments passed to the functions of this class are pointers to memory locations and length values. These functions are,
therefore, not normally used in open code but are suitable for implementing data manipulation for other classes. Typically
the interface provided by such classes is typesafe and hides this direct memory to memory manipulation.
Members
Defined in Mem
:
CollationMethodById()
, CollationMethodByIndex()
, CollationMethodId()
, CollationMethods()
, Compare()
, Compare()
, CompareC()
, CompareC()
, CompareC()
, CompareF()
, CompareF()
, Copy()
, Crc()
, Crc32()
, Fill()
, FillZ()
, GetDefaultMatchingTable()
, Move()
, Swap()
Member functions
static inline TUint8 *Copy(TAny *aTrg, const TAny *aSrc, TInt aLength);
Description
Copies data from a source location to a target location and returns a pointer to the end of the copied data.
The source and target areas can overlap.
The copy operation is optimised so that if both source and target locations are aligned on a word boundary, the operation
performs the copy on a word by word basis.
Parameters
TAny *aTrg |
A pointer to the target location for the copy operation.
|
const TAny *aSrc |
A pointer to the source location for the copy operation.
|
TInt aLength |
The number of bytes to be copied. This value must not be negative.
|
|
Return value
TUint8 * |
A pointer to a location aLength bytes beyond aTrg (i.e. the location aTrg+aLength).
|
|
Panic codes
USER |
90 In debug builds only, if aLength is negative.
|
|
static inline TUint8 *Move(TAny *aTrg, const TAny *aSrc, TInt aLength);
Description
Moves a block of data from a source location to a target location and returns a pointer to the end of the moved data.
The source and target areas can overlap.
Both source and target locations must be aligned on a word boundary. The specified length must also be a multiple of 4.
Parameters
TAny *aTrg |
A pointer to the target location for the move operation. This pointer must be word aligned.
|
const TAny *aSrc |
A pointer to the source location for the move operation. This pointer must be word aligned.
|
TInt aLength |
The number of bytes to be copied. This value must be a multiple of 4.
|
|
Return value
TUint8 * |
A pointer to a location aLength bytes beyond aTrg (i.e. the location aTrg+aLength).
|
|
Panic codes
USER |
93 In debug builds only, if aTrg is not word aligned.
|
USER |
92 In debug builds only, if aSrc is not word aligned.
|
USER |
91 In debug builds only, if aLength is not a multiple of 4.
|
|
static inline void Fill(TAny *aTrg, TInt aLength, TChar aChar);
Description
Fills a specified block of data with a specified character, replacing any existing content.
The function assumes that the fill character is a non-Unicode character.
Parameters
TAny *aTrg |
A pointer to the location where filling is to start.
|
TInt aLength |
The number of bytes to be filled. This value must not be negative.
|
TChar aChar |
The fill character.
|
|
Panic codes
USER |
95 In debug builds only, if aLength is negative.
|
|
static inline void FillZ(TAny *aTrg, TInt aLength);
Description
Fills a specified block of data with binary zeroes (i.e. 0x00), replacing any existing content.
Parameters
TAny *aTrg |
A pointer to the location where filling is to start.
|
TInt aLength |
The number of bytes to be filled. This value must not be negative.
|
|
Panic codes
USER |
95 In debug builds only, if aLength is negative.
|
|
static inline TInt Compare(const TUint8 *aLeft, TInt aLeftL, const TUint8 *aRight, TInt aRightL);
Description
Compares a block of data at one specified location with a block of data at another specified location.
The comparison proceeds on a byte for byte basis, the result of the comparison is based on the difference of the first bytes
to disagree.
The data at the two locations are equal if they have the same length and content. Where the lengths are different and the
shorter section of data is the same as the first part of the longer section of data, the shorter is considered to be less
than the longer.
Parameters
const TUint8 *aLeft |
A pointer to the first (or left) block of 8 bit data to be compared.
|
TInt aLeftL |
The length of the first (or left) block of data to be compared, i.e. the number of bytes.
|
const TUint8 *aRight |
A pointer to the second (or right) block of 8 bit data to be compared.
|
TInt aRightL |
The length of the second (or right) block of data to be compared i.e. the number of bytes.
|
|
Return value
TInt
|
Positive, if the first (or left) block of data is greater than the second (or right) block of data. Negative, if the first
(or left) block of data is less than the second (or right) block of data. Zero, if both the first (or left) and second (or
right) blocks of data have the same length and the same content.
|
|
static IMPORT_C TInt Compare(const TUint16 *aLeft, TInt aLeftL, const TUint16 *aRight, TInt aRightL);
Description
Compares a block of data at one specified location with a block of data at another specified location.
The comparison proceeds on a double-byte for double-byte basis, the result of the comparison is based on the difference of
the first pair of bytes to disagree.
The data at the two locations are equal if they have the same length and content. Where the lengths are different and the
shorter section of data is the same as the first part of the longer section of data, the shorter is considered to be less
than the longer.
Parameters
const TUint16 *aLeft |
A pointer to the first (or left) block of 16 bit data to be compared.
|
TInt aLeftL |
The length of the first (or left) block of data to be compared i.e. the number of double-bytes.
|
const TUint16 *aRight |
A pointer to the second (or right) block of 16 bit data to be compared.
|
TInt aRightL |
The length of the second (or right) block of data to be compared i.e. the number of double-bytes.
|
|
Return value
TInt
|
Positive, if the first (or left) block of data is greater than the second (or right) block of data. Negative, if the first
(or left) block of data is less than the second (or right) block of data. Zero, if both the first (or left) and second (or
right) blocks of data have the same length and the same content.
|
|
static IMPORT_C TInt CompareF(const TUint8 *aLeft, TInt aLeftL, const TUint8 *aRight, TInt aRightL);
Description
Compares a block of data at one specified location with a block of data at another specified location, using the standard
folding method appropriate to the current locale.
Parameters
const TUint8 *aLeft |
A pointer to the first (or left) block of 8 bit data to be compared.
|
TInt aLeftL |
The length of the first (or left) block of data to be compared, i.e. the number of bytes.
|
const TUint8 *aRight |
A pointer to the second (or right) block of 8 bit data to be compared.
|
TInt aRightL |
The length of the second (or right) block of data to be compared, i.e. the number of bytes.
|
|
Return value
TInt
|
Positive, if the first (or left) block of data is greater than the second (or right) block of data. Negative, if the first
(or left) block of data is less than the second (or right) block of data. Zero, if both the first (or left) and second (or
right) blocks of data have the same length and the same content.
|
|
static IMPORT_C TInt CompareF(const TUint16 *aLeft, TInt aLeftL, const TUint16 *aRight, TInt aRightL);
Description
Compares a block of data at one specified location with a block of data at another specified location, using the standard
folding method appropriate to the current locale.
Parameters
const TUint16 *aLeft |
A pointer to the first (or left) block of 16 bit data to be compared.
|
TInt aLeftL |
The length of the first (or left) block of data to be compared i.e. the number of double-bytes.
|
const TUint16 *aRight |
A pointer to the second (or right) block of 16 bit data to be compared.
|
TInt aRightL |
The length of the second (or right) block of data to be compared i.e the number of double-bytes.
|
|
Return value
TInt
|
Positive, if the first (or left) block of data is greater than the second (or right) block of data. Negative, if the first
(or left) block of data is less than the second (or right) block of data. Zero, if both the first (or left) and second (or
right) blocks of data have the same length and the same content.
|
|
static IMPORT_C TInt CompareC(const TUint8 *aLeft, TInt aLeftL, const TUint8 *aRight, TInt aRightL);
Description
Compares a block of data at one specified location with a block of data at another specified location using the standard collation
method appropriate to the current locale.
Parameters
const TUint8 *aLeft |
A pointer to the first (or left) block of 8 bit data to be compared.
|
TInt aLeftL |
The length of the first (or left) block of data to be compared i.e. the number of bytes.
|
const TUint8 *aRight |
A pointer to the second (or right) block of 8 bit data to be compared.
|
TInt aRightL |
The length of the second (or right) block of data to be compared i.e. the number of bytes.
|
|
Return value
TInt
|
Positive, if the first (or left) block of data is greater than the second (or right) block of data. Negative, if the first
(or left) block of data is less than the second (or right) block of data. Zero, if both the first (or left) and second (or
right) blocks of data have the same length and the same content.
|
|
static IMPORT_C TInt CompareC(const TUint16 *aLeft, TInt aLeftL, const TUint16 *aRight, TInt aRightL);
Description
Compares a block of data at one specified location with a block of data at another specified location using the standard collation
method appropriate to the current locale.
Parameters
const TUint16 *aLeft |
A pointer to the first (or left) block of 16 bit data to be compared.
|
TInt aLeftL |
The length of the first (or left) block of data to be compared i.e. the number of double-bytes).
|
const TUint16 *aRight |
A pointer to the second (or right) block of 16 bit data to be compared.
|
TInt aRightL |
The length of the second (or right) block of data to be compared i.e. the number of double-bytes.
|
|
Return value
TInt
|
Positive, if the first (or left) block of data is greater than the second (or right) block of data. Negative, if the first
(or left) block of data is less than the second (or right) block of data. Zero, if both the first (or left) and second (or
right) blocks of data have the same length and the same content.
|
|
static IMPORT_C TInt CompareC(const TUint16 *aLeft, TInt aLeftL, const TUint16 *aRight, TInt aRightL, TInt aMaxLevel, const
TCollationMethod *aCollationMethod);
Description
Compares a block of data at one location with a block of data at another location using the specified collation method and
collating to the specified maximum collation level.
If no collation method is supplied, a default method, appropriate to the current locale, is used.
This function is only defined for 16 bit (Unicode) build variants. This means that the function is not defined for 8 bit build
variants, even when an explicit 16 bit descriptor is used.
Parameters
const TUint16 *aLeft |
A pointer to the first (or left) block of 16 bit data to be compared.
|
TInt aLeftL |
The length of the first (or left) block of data to be compared. This is the number of double-bytes.
|
const TUint16 *aRight |
A pointer to the second (or right) block of 16 bit data to be compared.
|
TInt aRightL |
The length of the second (or right) block of data to be compared. This is the number of double-bytes.
|
TInt aMaxLevel |
The maximum collation level.
|
const TCollationMethod *aCollationMethod |
A pointer to the collation method or NULL.
|
|
Return value
TInt
|
Positive, if this descriptor is greater than the specified descriptor. Negative, if this descriptor is less than the specified
descriptor. Zero, if both descriptors have the same length and their contents are the same.
|
|
static IMPORT_C TInt CollationMethods();
Description
Gets the number of collation methods in this locale.
This function is only defined for 16 bit (Unicode) build variants. This means that the function is not defined for 8 bit build
variants, even when an explicit 16 bit descriptor is used.
Return value
TInt
|
The number of collation methods.
|
|
static IMPORT_C TUint CollationMethodId(TInt aIndex);
Description
Gets the Uid associated with the specified collation method.
This function is only defined for 16 bit (Unicode) build variants. This means that the function is not defined for 8 bit build
variants, even when an explicit 16 bit descriptor is used.
Parameters
TInt aIndex |
An index into the set of collation methods in thie locale. This value is relative to zero; i.e. a zero value refers to the
first collation method. This value must not be negative, and must be less than the total number of collation methods in this
locale.
|
|
Return value
TUint
|
The Uid of the collation method.
|
|
Panic codes
USER |
132 In debug builds only, if aIndex is negative or is greater than or equal to the total number of collation methods in this
locale.
|
|
static IMPORT_C const TCollationMethod *CollationMethodByIndex(TInt aIndex);
Description
Gets the collation method identified by the specified index.
This function is only defined for 16 bit (Unicode) build variants. This means that the function is not defined for 8 bit build
variants, even when an explicit 16 bit descriptor is used.
Parameters
TInt aIndex |
An index into the set of collation methods in this locale. This value is relative to zero; i.e. a zero value refers to the
first collation method. This value must not be negative, and must be less than the total number of collation methods in this
locale.
|
|
Return value
const TCollationMethod * |
A pointer to the collation method.
|
|
Panic codes
USER |
132 In debug builds only, if aIndex is negative or is greater than or equal to the total number of collation methods in this
locale.
|
|
static IMPORT_C const TCollationMethod *CollationMethodById(TUint aId);
Description
Gets the collation method identified by the specified Uid.
This function is only defined for 16 bit (Unicode) build variants. This means that the function is not defined for 8 bit build
variants, even when an explicit 16 bit descriptor is used.
Parameters
TUint aId |
The Uid of a collation method in the set of collation methods in this locale.
|
|
Return value
const TCollationMethod * |
A pointer to the collation method.
|
|
GetDefaultMatchingTable()
static IMPORT_C const TCollationMethod *GetDefaultMatchingTable();
Description
Gets the collation method specific for matching purpose.
This function is only defined for 16 bit (Unicode) build variants. This means that the function is not defined for 8 bit build
variants, even when an explicit 16 bit descriptor is used.
Return value
const TCollationMethod * |
A pointer to the collation method
|
|
static IMPORT_C void Swap(TAny *aPtr1, TAny *aPtr2, TInt aLength);
Description
Swaps a number of bytes of data between two specified locations.
The source and target areas can overlap.
Parameters
TAny *aPtr1 |
A pointer to the first location taking part in the swap.
|
TAny *aPtr2 |
A pointer to second location taking part in the swap.
|
TInt aLength |
The number of bytes to be swapped between the two locations. This value must not be negative.
|
|
Panic codes
USER |
94 In debug builds only, if aLength is negative.
|
|
static IMPORT_C void Crc(TUint16 &aCrc, const TAny *aPtr, TInt aLength);
Description
Performs a CCITT CRC checksum on the specified data.
On return from this function, the referenced 16 bit integer contains the checksummed value.
Parameters
TUint16 &aCrc |
A reference to a 16 bit integer to contain the checksummed value.
|
const TAny *aPtr |
A pointer to the start of the data to be checksummed.
|
TInt aLength |
The length of the data to be checksummed.
|
|
static IMPORT_C void Crc32(TUint32 &aCrc, const TAny *aPtr, TInt aLength);
Description
Performs a CCITT CRC-32 checksum on the specified data.
On return from this function, the referenced 32 bit integer contains the CRC value.
Parameters
TUint32 &aCrc |
A reference to a 32 bit integer to contain the CRC value.
|
const TAny *aPtr |
A pointer to the start of the data to be checksummed.
|
TInt aLength |
The length of the data to be checksummed.
|
|