epoc32/include/badesca.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// Written by DavidW, October 1996
williamr@2
    15
// Descriptor arrays
williamr@2
    16
// 
williamr@2
    17
//
williamr@2
    18
williamr@2
    19
#if !defined(__BADESCA_H__)
williamr@2
    20
#define __BADESCA_H__
williamr@2
    21
williamr@2
    22
#if !defined(__BAMDESCA_H__)
williamr@2
    23
#include <bamdesca.h>
williamr@2
    24
#endif
williamr@2
    25
williamr@2
    26
#if !defined(__E32BASE_H__)
williamr@2
    27
#include <e32base.h>
williamr@2
    28
#endif
williamr@2
    29
williamr@2
    30
williamr@2
    31
class CDesC8Array : public CArrayFixBase, public MDesC8Array
williamr@2
    32
/** An implementation base class for 8 bit descriptor arrays. 
williamr@2
    33
williamr@2
    34
It provides some of the behaviour for 8 bit descriptor arrays. The class is 
williamr@2
    35
abstract and cannot be instantiated. 
williamr@2
    36
@publishedAll
williamr@2
    37
@released
williamr@2
    38
*/
williamr@2
    39
	{
williamr@2
    40
protected:
williamr@2
    41
	IMPORT_C CDesC8Array(TBufRep aRep,TInt aGranularity);
williamr@2
    42
public:
williamr@2
    43
    IMPORT_C ~CDesC8Array();
williamr@2
    44
	IMPORT_C void AppendL(const TDesC8& aPtr);
williamr@2
    45
	IMPORT_C void InsertL(TInt aPos,const TDesC8& aPtr);
williamr@2
    46
	IMPORT_C TInt InsertIsqL(const TDesC8& aPtr,TKeyCmpText aTextComparisonType=ECmpFolded);
williamr@2
    47
	IMPORT_C TInt InsertIsqAllowDuplicatesL(const TDesC8& aPtr,TKeyCmpText aTextComparisonType=ECmpFolded);
williamr@2
    48
	IMPORT_C void Sort(TKeyCmpText aTextComparisonType=ECmpFolded);
williamr@2
    49
	IMPORT_C TInt Find(const TDesC8& aPtr,TInt& aPos,TKeyCmpText aTextComparisonType=ECmpFolded) const;
williamr@2
    50
	IMPORT_C TInt FindIsq(const TDesC8& aPtr,TInt& aPos,TKeyCmpText aTextComparisonType=ECmpFolded) const;
williamr@2
    51
	IMPORT_C void Delete(TInt aPos);
williamr@2
    52
	IMPORT_C void Delete(TInt aIndex,TInt aCount);
williamr@2
    53
	IMPORT_C void Reset();
williamr@2
    54
	inline TPtrC8 operator[](TInt aIndex) const;
williamr@2
    55
// from MDesC8Array
williamr@2
    56
    IMPORT_C TInt MdcaCount() const;
williamr@2
    57
	IMPORT_C TPtrC8 MdcaPoint(TInt aIndex) const;
williamr@2
    58
	};
williamr@2
    59
williamr@2
    60
inline TPtrC8 CDesC8Array::operator[](TInt aIndex) const
williamr@2
    61
	{ return(MdcaPoint(aIndex)); }
williamr@2
    62
williamr@2
    63
williamr@2
    64
class CDesC8ArrayFlat : public CDesC8Array
williamr@2
    65
/** An array of 8 bit descriptors implemented using a flat buffer.
williamr@2
    66
"bafl.lib" 
williamr@2
    67
@since 5.0
williamr@2
    68
@publishedAll
williamr@2
    69
@released
williamr@2
    70
*/
williamr@2
    71
	{
williamr@2
    72
public:
williamr@2
    73
	IMPORT_C CDesC8ArrayFlat(TInt aGranularity);
williamr@2
    74
    IMPORT_C ~CDesC8ArrayFlat();
williamr@2
    75
	};
williamr@2
    76
williamr@2
    77
williamr@2
    78
class CDesC8ArraySeg : public CDesC8Array
williamr@2
    79
/** An array of 8 bit descriptors implemented using a segmented buffer. 
williamr@2
    80
"bafl.lib"
williamr@2
    81
@since 5.0
williamr@2
    82
@publishedAll
williamr@2
    83
@released
williamr@2
    84
*/
williamr@2
    85
	{
williamr@2
    86
public:
williamr@2
    87
	IMPORT_C CDesC8ArraySeg(TInt aGranularity);
williamr@2
    88
    IMPORT_C ~CDesC8ArraySeg();
williamr@2
    89
	};
williamr@2
    90
williamr@2
    91
williamr@2
    92
class CDesC16Array : public CArrayFixBase, public MDesC16Array
williamr@2
    93
/** An implementation base class for 16 bit descriptor arrays. It provides some 
williamr@2
    94
of the behaviour for 16 bit descriptor arrays.
williamr@2
    95
williamr@2
    96
The class is abstract and cannot be instantiated. 
williamr@2
    97
" bafl.lib "
williamr@2
    98
@since 5.0
williamr@2
    99
@publishedAll
williamr@2
   100
@released
williamr@2
   101
*/
williamr@2
   102
	{
williamr@2
   103
protected:
williamr@2
   104
	IMPORT_C CDesC16Array(TBufRep aRep,TInt aGranularity);
williamr@2
   105
public:
williamr@2
   106
    IMPORT_C ~CDesC16Array();
williamr@2
   107
	IMPORT_C void AppendL(const TDesC16& aPtr);
williamr@2
   108
	IMPORT_C void InsertL(TInt aPos,const TDesC16& aPtr);
williamr@2
   109
	IMPORT_C TInt InsertIsqL(const TDesC16& aPtr,TKeyCmpText aTextComparisonType=ECmpFolded);
williamr@2
   110
	IMPORT_C TInt InsertIsqAllowDuplicatesL(const TDesC16& aPtr,TKeyCmpText aTextComparisonType=ECmpFolded);
williamr@2
   111
	IMPORT_C void Sort(TKeyCmpText aTextComparisonType=ECmpFolded);
williamr@2
   112
	IMPORT_C TInt Find(const TDesC16& aPtr,TInt& aPos,TKeyCmpText aTextComparisonType=ECmpFolded) const;
williamr@2
   113
	IMPORT_C TInt FindIsq(const TDesC16& aPtr,TInt& aPos,TKeyCmpText aTextComparisonType=ECmpFolded) const;
williamr@2
   114
	IMPORT_C void Delete(TInt aPos);
williamr@2
   115
	IMPORT_C void Delete(TInt aIndex,TInt aCount);
williamr@2
   116
	IMPORT_C void Reset();
williamr@2
   117
	inline TPtrC16 operator[](TInt aIndex) const;
williamr@2
   118
// from MDesC16Array
williamr@2
   119
    IMPORT_C TInt MdcaCount() const;
williamr@2
   120
		IMPORT_C TPtrC16 MdcaPoint(TInt aIndex) const;
williamr@2
   121
	};
williamr@2
   122
williamr@2
   123
williamr@2
   124
williamr@2
   125
inline TPtrC16 CDesC16Array::operator[](TInt aIndex) const
williamr@2
   126
/** Returns a non-modifiable descriptor to represent the descriptor
williamr@2
   127
element located at the specified index within the array.
williamr@2
   128
williamr@2
   129
@param aIndex The position of the descriptor element within the array. 
williamr@2
   130
The position is relative to zero; i.e. zero implies the first descriptor 
williamr@2
   131
element in the array. This value must be non-negative and less than the
williamr@2
   132
number of descriptors currently within the array otherwise the operator 
williamr@2
   133
panics with
williamr@2
   134
@code
williamr@2
   135
EArrayIndexOutOfRange
williamr@2
   136
@endcode
williamr@2
   137
@return A 16 bit non-modifiable pointer descriptor. */
williamr@2
   138
 { return(MdcaPoint(aIndex)); }
williamr@2
   139
williamr@2
   140
williamr@2
   141
class CDesC16ArrayFlat : public CDesC16Array
williamr@2
   142
/** Array of 16 bit descriptors implemented using a flat buffer. 
williamr@2
   143
"bafl.lib  
williamr@2
   144
@since 5.0
williamr@2
   145
@publishedAll
williamr@2
   146
@released
williamr@2
   147
*/
williamr@2
   148
	{
williamr@2
   149
public:
williamr@2
   150
	IMPORT_C CDesC16ArrayFlat(TInt aGranularity);
williamr@2
   151
    IMPORT_C ~CDesC16ArrayFlat();
williamr@2
   152
	};
williamr@2
   153
williamr@2
   154
williamr@2
   155
class CDesC16ArraySeg : public CDesC16Array
williamr@2
   156
/** An array of 16 bit descriptors implemented using a segmented buffer. 
williamr@2
   157
"bafl.lib"
williamr@2
   158
@since 5.0
williamr@2
   159
@publishedAll
williamr@2
   160
@released
williamr@2
   161
*/
williamr@2
   162
	{
williamr@2
   163
public:
williamr@2
   164
	IMPORT_C CDesC16ArraySeg(TInt aGranularity);
williamr@2
   165
    IMPORT_C ~CDesC16ArraySeg();
williamr@2
   166
	};
williamr@2
   167
williamr@2
   168
williamr@2
   169
class CPtrC8Array : public CArrayFixFlat<TPtrC8>, public MDesC8Array
williamr@2
   170
/** Array of 8 bit non-modifiable pointer descriptors, TPtrC8, implemented using 
williamr@2
   171
a flat buffer.
williamr@2
   172
"bafl.lib" 
williamr@2
   173
@since 5.0
williamr@2
   174
@publishedAll
williamr@2
   175
@released
williamr@2
   176
*/
williamr@2
   177
	{
williamr@2
   178
public:
williamr@2
   179
	IMPORT_C CPtrC8Array(TInt aGranularity);
williamr@2
   180
	IMPORT_C ~CPtrC8Array();
williamr@2
   181
//
williamr@2
   182
	IMPORT_C void CopyL(const MDesC8Array& aArray);
williamr@2
   183
    inline void operator=(const MDesC8Array& aArray);
williamr@2
   184
// Mixin members
williamr@2
   185
    IMPORT_C TInt MdcaCount() const;
williamr@2
   186
    IMPORT_C TPtrC8 MdcaPoint(TInt aIndex) const;
williamr@2
   187
	};
williamr@2
   188
williamr@2
   189
williamr@2
   190
class CPtrC16Array : public CArrayFixFlat<TPtrC16>, public MDesC16Array
williamr@2
   191
/** An array of 16 bit non-modifiable pointer descriptors, TPtrC16, implemented 
williamr@2
   192
using a flat buffer. 
williamr@2
   193
"bafl.lib"
williamr@2
   194
@since 5.0
williamr@2
   195
@publishedAll
williamr@2
   196
@released
williamr@2
   197
*/
williamr@2
   198
	{
williamr@2
   199
public:
williamr@2
   200
	IMPORT_C CPtrC16Array(TInt aGranularity);
williamr@2
   201
	IMPORT_C ~CPtrC16Array();
williamr@2
   202
//
williamr@2
   203
	IMPORT_C void CopyL(const MDesC16Array& aArray);
williamr@2
   204
    inline void operator=(const MDesC16Array& aArray);
williamr@2
   205
// Mixin members
williamr@2
   206
    IMPORT_C TInt MdcaCount() const;
williamr@2
   207
    IMPORT_C TPtrC16 MdcaPoint(TInt aIndex) const;
williamr@2
   208
	};
williamr@2
   209
williamr@2
   210
williamr@2
   211
inline void CPtrC8Array::operator=(const MDesC8Array& aArray)
williamr@2
   212
/** Copies a descriptor array into this array, deleting any pre-existing
williamr@2
   213
elements.
williamr@2
   214
williamr@2
   215
The function constructs TPtrC8 elements for each descriptor element
williamr@2
   216
in the specified descriptor array. This operator behaves in the 
williamr@2
   217
same ways as CPtrC8Array::CopyL().
williamr@2
   218
williamr@2
   219
@param aArrayA reference to any descriptor array which satisfies
williamr@2
   220
the protocol defined by this mixin class. */
williamr@2
   221
	{CopyL(aArray);}
williamr@2
   222
williamr@2
   223
williamr@2
   224
inline void CPtrC16Array::operator=(const MDesC16Array& aArray)
williamr@2
   225
/** Copies a descriptor array into this array, deleting any pre-existing
williamr@2
   226
elements.
williamr@2
   227
williamr@2
   228
The function constructs TPtrC16 elements for each descriptor element
williamr@2
   229
in the specified descriptor array.This operator behaves in the 
williamr@2
   230
same ways as CPtrC16Array::CopyL().
williamr@2
   231
williamr@2
   232
@param aArray A reference to any descriptor array which satisfies
williamr@2
   233
the protocol defined by this mixin class. */
williamr@2
   234
	{CopyL(aArray);}
williamr@2
   235
williamr@2
   236
// generic text array definitions
williamr@2
   237
williamr@2
   238
#if defined (_UNICODE)
williamr@2
   239
/** Build independent implementation base class for descriptor arrays.
williamr@2
   240
williamr@2
   241
@see CDesC8Array
williamr@2
   242
@see CDesC16Array 
williamr@2
   243
@publishedAll
williamr@2
   244
@released
williamr@2
   245
*/
williamr@2
   246
typedef CDesC16Array     CDesCArray;
williamr@2
   247
williamr@2
   248
/** Build independent array of descriptors implemented using a flat buffer.
williamr@2
   249
williamr@2
   250
@see CDesC8ArrayFlat
williamr@2
   251
@see CDesC16ArrayFlat
williamr@2
   252
@publishedAll
williamr@2
   253
@released
williamr@2
   254
*/
williamr@2
   255
typedef CDesC16ArrayFlat CDesCArrayFlat;
williamr@2
   256
williamr@2
   257
/** Build independent array of descriptors implemented using a segmented buffer.
williamr@2
   258
williamr@2
   259
@see CDesC16ArraySeg
williamr@2
   260
@see CDesC8ArraySeg 
williamr@2
   261
@publishedAll
williamr@2
   262
@released
williamr@2
   263
*/
williamr@2
   264
typedef CDesC16ArraySeg  CDesCArraySeg;
williamr@2
   265
williamr@2
   266
/** Build independent array of non-modifiable pointer descriptors.
williamr@2
   267
williamr@2
   268
A 16 bit build variant is generated for a Unicode build and an 8 bit build 
williamr@2
   269
variant generated for a non-Unicode build.
williamr@2
   270
williamr@2
   271
This build independent type should always be used unless an explicit 8 bit 
williamr@2
   272
or 16 bit build variant is required.
williamr@2
   273
williamr@2
   274
@see CPtrC16Array
williamr@2
   275
@see CPtrC8Array 
williamr@2
   276
@publishedAll
williamr@2
   277
@released
williamr@2
   278
*/
williamr@2
   279
typedef CPtrC16Array CPtrCArray;
williamr@2
   280
#else
williamr@2
   281
/** Build independent implementation base class for descriptor arrays.
williamr@2
   282
williamr@2
   283
@see CDesC8Array
williamr@2
   284
@see CDesC16Array 
williamr@2
   285
@publishedAll
williamr@2
   286
@released
williamr@2
   287
*/
williamr@2
   288
typedef CDesC8Array      CDesCArray;
williamr@2
   289
/** Build independent array of descriptors implemented using a flat buffer.
williamr@2
   290
williamr@2
   291
@see CDesC8ArrayFlat
williamr@2
   292
@see CDesC16ArrayFlat
williamr@2
   293
@publishedAll
williamr@2
   294
@released
williamr@2
   295
*/
williamr@2
   296
typedef CDesC8ArrayFlat  CDesCArrayFlat;
williamr@2
   297
/** Build independent array of descriptors implemented using a segmented buffer.
williamr@2
   298
williamr@2
   299
@see CDesC16ArraySeg
williamr@2
   300
@see CDesC8ArraySeg 
williamr@2
   301
@publishedAll
williamr@2
   302
@released
williamr@2
   303
*/
williamr@2
   304
typedef CDesC8ArraySeg   CDesCArraySeg;
williamr@2
   305
/** Build independent array of non-modifiable pointer descriptors.
williamr@2
   306
williamr@2
   307
A 16 bit build variant is generated for a Unicode build and an 8 bit build 
williamr@2
   308
variant generated for a non-Unicode build.
williamr@2
   309
williamr@2
   310
This build independent type should always be used unless an explicit 8 bit 
williamr@2
   311
or 16 bit build variant is required.
williamr@2
   312
williamr@2
   313
@see CPtrC16Array
williamr@2
   314
@see CPtrC8Array 
williamr@2
   315
@publishedAll
williamr@2
   316
@released
williamr@2
   317
*/
williamr@2
   318
typedef CPtrC8Array CPtrCArray;
williamr@2
   319
#endif
williamr@2
   320
williamr@2
   321
williamr@2
   322
#endif // __BADESCA_H__