diff -r 000000000000 -r dd21522fd290 codhandler/codeng/inc/CodUtil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/codhandler/codeng/inc/CodUtil.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,232 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Declaration of class CodUtil. +* +* +*/ + + +#ifndef COD_UTIL_H +#define COD_UTIL_H + +// INCLUDE FILES + +#include +#include +#include + +// FORWARD DECLARATION + +class RFs; +class RFile; +class CBodyPart; +class CAiwGenericParamList; + +// CLASS DECLARATION + +/** +* Static utility functions. Wrapped in a struct to keep the global namespace +* clean. +*/ +NONSHARABLE_STRUCT( CodUtil ) + { + public: + + /** + * Check if file can be opened (unprotected, or rights present). + * @param aFname File name. Nonempty ASSERT-ed. + * @return ETrue if file can be opened. + */ + IMPORT_C static TBool CanOpenL( const TDesC& aFname ); + + /** + * Check if file can be opened (unprotected, or rights present). + * @param aFile File. + * @return ETrue if file can be opened. + */ + IMPORT_C static TBool CanOpenL( RFile& aFile ); + + /** + * Get integer parameter (if exists). + * @param aParam Parameter to set. Not modified if not set. + * @param aSemanticId. Semantic id. + * @param aParams Parameter list. + */ + IMPORT_C static void GetIntParam + ( + TInt& aParam, + TGenericParamId aSemanticId, + const CAiwGenericParamList& aParams + ); + + /** + * Get TUint32 parameter (if exists). + * @param aParam Parameter to set. Not modified if not set. + * @param aSemanticId. Semantic id. + * @param aParams Parameter list. + */ + IMPORT_C static void GetUint32Param + ( + TUint32& aParam, + TGenericParamId aSemanticId, + const CAiwGenericParamList& aParams + ); + + /** + * Get bool parameter (if exists). + * @param aParam Parameter to set. Not modified if not set. + * @param aSemanticId. Semantic id. + * @param aParams Parameter list. + */ + IMPORT_C static void GetBoolParam + ( + TBool& aParam, + TGenericParamId aSemanticId, + const CAiwGenericParamList& aParams + ); + + /** + * Get descriptor parameter (if exists). + * Both 8 and 16-bit variants are checked. + * Leaves a temp buffer (or NULL) on the cleanup stack. + * @param aParam Parameter to set. After returning: + * - Set to point into aParams (8-bit param), or + * - Set to point into the pushed temp buffer (16-bit param), or + * - Remains unchaged (no param). + * @param aSemanticId. Semantic id. + * @param aParams Parameter list. + */ + IMPORT_C static void GetDesParamLC + ( + TPtrC8& aParam, + TGenericParamId aSemanticId, + const CAiwGenericParamList& aParams + ); + + /** + * Get 16-bit descriptor parameter (if exists). + * @param aParam Parameter to set. After returning: + * - Set to point into aParams, or + * - Remains unchaged (no param). + * @param aSemanticId. Semantic id. + * @param aParams Parameter list. + */ + IMPORT_C static void GetDesParam + ( + TPtrC& aParam, + TGenericParamId aSemanticId, + const CAiwGenericParamList& aParams + ); + + /** + * Check if URL has 'cid' scheme. + * @param aUrl URL. + * @return ETrue if URL has 'cid' scheme. + */ + static TBool IsCidSchemeL( const TDesC8& aUrl ); + + /** + * Lookup body part by CID, or NULL if not found. CID scheme asserted! + * @param aParts Body parts. + * @param aUrl URL. + * @return The body part or NULL. + */ + static CBodyPart* PartByCidL + ( const RPointerArray& aParts, const TDesC8& aUrl ); + + /** + * Extract file name part of an URL. + * @param aUrl URL. + * @return File name part. This may be zero length. + */ + static TPtrC8 FileNameFromUrl( const TDesC8& aUrl ); + + /** + * Allocate and return an absolute URL: + * - If aUrl is already absolute, it is returned and aBase is ignored. + * - If aUrl is a relative URL, resolve it against aBase. In + * this case, aBase need to be an absolute URL. + * URL-s need to be valid URL-s or this function leaves. + * @param aBase Base URL, used only if aUrl is a relative URL. + * @param aUrl URL. + * @return Absolute URL. Ownership passed to caller. + */ + IMPORT_C static HBufC8* AbsoluteUrlLC + ( const TDesC8& aBase, const TDesC8& aUrl ); + + /** + * Convert to UCS-2. + * @param aSrc Source string. + * @param aEncoding Encoding or empty string. + * @param aFs File Server Session to be used. + * @return Converted string. Owner is the caller. + */ + static HBufC16* ConvertToUcs2L + ( const TDesC8& aSrc, const TDesC8& aEncoding, RFs& aFs ); + + /** + * Convert UCS-2 to UTF-8. + * @param aUcs2Src Source string. + * @return Converted string. Owner is the caller. + */ + static HBufC8* ConvertUcs2ToUtf8L( const TDesC& aUcs2Src ); + + /** + * Convert 16-bit descriptor to 8 bit. + * @param aDes Descriptor to convert. + * @return Converted descriptor. Owner is the caller. Pushed on stack. + */ + + IMPORT_C static HBufC8* ConvertLC( const TDesC& aDes ); + + /** + * Convert 8-bit descriptor to 16 bit. + * @param aDes Descriptor to convert. + * @return Converted descriptor. Owner is the caller. Pushed on stack. + */ + IMPORT_C static HBufC* ConvertLC( const TDesC8& aDes ); + + /** + * Convert 16-bit descriptor to 8 bit. + * @param aDes Descriptor to convert. + * @return Converted descriptor. Owner is the caller. Pushed on stack. + */ + + IMPORT_C static HBufC8* ConvertL( const TDesC& aDes ); + + /** + * Convert 8-bit descriptor to 16 bit. + * @param aDes Descriptor to convert. + * @return Converted descriptor. Owner is the caller. Pushed on stack. + */ + IMPORT_C static HBufC* ConvertL( const TDesC8& aDes ); + + /** + * Count Access Points. + * @return Number of Access Points. + */ + static TUint32 ApCountL(); + + /** + * Get WAP gateway address (or NULL) for an Access Point. + * @param aIap Access Point id. + * @return Gateway address for the Access Point, or NULL if not a + * WAP AP. Owner is the caller. + */ + static HBufC8* WapGatewayL( TUint32 aIap ); + + }; + +#endif /* def COD_UTIL_H */