williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // 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: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // Started by DavidW, March 1996 williamr@2: // Mixin descriptor array williamr@2: // williamr@2: // williamr@2: williamr@2: #if !defined(__BAMDESCA_H__) williamr@2: #define __BAMDESCA_H__ williamr@2: williamr@2: #if !defined(__E32STD_H__) williamr@2: #include williamr@2: #endif williamr@2: williamr@2: williamr@2: williamr@2: class MDesC8Array williamr@2: /** williamr@2: Interface class for 8 bit descriptor arrays. williamr@2: It should be inherited by classes which implement this protocol. williamr@2: williamr@2: This protocol is implemented by class CDesC8Array and the concrete class CPtrC8Array. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: /** Destructor. */ williamr@2: virtual ~MDesC8Array() {} williamr@2: /** Requirements williamr@2: williamr@2: Returns the number of descriptor elements in a descriptor array. williamr@2: williamr@2: @return The number of descriptor elements in a descriptor array. */ williamr@2: virtual TInt MdcaCount() const =0; williamr@2: williamr@2: /** Requirements williamr@2: williamr@2: Indexes into a descriptor array. williamr@2: williamr@2: @param aIndex The position of the descriptor element within a descriptor array. williamr@2: The position is relative to zero; i.e. zero implies the first descriptor element williamr@2: in a descriptor array. williamr@2: @return An 8 bit non-modifiable pointer descriptor representing the descriptor williamr@2: element located at position aIndex within a descriptor array. */ williamr@2: virtual TPtrC8 MdcaPoint(TInt aIndex) const =0; williamr@2: }; williamr@2: williamr@2: williamr@2: class MDesC16Array williamr@2: /** williamr@2: Interface class for 16 bit descriptor arrays. It should be inherited by classes williamr@2: which implement this protocol. williamr@2: This protocol is implemented by class CDesC16Array and the concrete class williamr@2: CPtrC16Array. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: /** Destructor. */ williamr@2: virtual ~MDesC16Array() {} williamr@2: williamr@2: /** Requirements williamr@2: williamr@2: Returns the number of descriptor elements in a descriptor array. williamr@2: williamr@2: @return The number of descriptor elements in a descriptor array. */ williamr@2: virtual TInt MdcaCount() const =0; williamr@2: /** Requirements williamr@2: williamr@2: Indexes into a descriptor array. williamr@2: williamr@2: @param aIndex The position of the descriptor element within a descriptor array. williamr@2: The position is relative to zero; i.e. zero implies the first descriptor element williamr@2: in a descriptor array. williamr@2: @return A 16 bit non-modifiable pointer descriptor representing the descriptor williamr@2: element located at position aIndex within a descriptor array. */ williamr@2: virtual TPtrC16 MdcaPoint(TInt aIndex) const =0; williamr@2: }; williamr@2: williamr@2: williamr@2: // The definitions below are macros rather than typedefs to avoid generating williamr@2: // warning C4097 every time the generic mixin class is used in a class williamr@2: // definition. williamr@2: williamr@2: #if defined(_UNICODE) williamr@2: /** williamr@2: Build independent interface class for descriptor arrays. williamr@2: williamr@2: A 16 bit build variant is generated for a Unicode build and an 8 bit build williamr@2: variant generated for a non-Unicode build. williamr@2: williamr@2: This build independent type should always be used unless an explicit 8 bit williamr@2: or 16 bit build variant is required. williamr@2: williamr@2: @see MDesC16Array williamr@2: @see MDesC8Array williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: #define MDesCArray MDesC16Array williamr@2: //typedef MDesC16Array MDesCArray; williamr@2: #else williamr@2: /** williamr@2: Build independent interface class for descriptor arrays. williamr@2: williamr@2: A 16 bit build variant is generated for a Unicode build and an 8 bit build williamr@2: variant generated for a non-Unicode build. williamr@2: williamr@2: This build independent type should always be used unless an explicit 8 bit williamr@2: or 16 bit build variant is required. williamr@2: williamr@2: @see MDesC16Array williamr@2: @see MDesC8Array williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: #define MDesCArray MDesC8Array williamr@2: //typedef MDesC8Array MDesCArray; williamr@2: #endif williamr@2: williamr@2: williamr@2: #endif // __BAMDESCA_H__