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@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.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: // williamr@2: williamr@2: #ifndef __VSTATICUTILS_H__ williamr@2: #define __VSTATICUTILS_H__ williamr@2: williamr@2: // System includes williamr@2: #include williamr@2: williamr@2: // User includes williamr@2: #include williamr@2: williamr@2: // Classes referenced williamr@2: class CVersitAdditionalPropertyStorage; williamr@2: williamr@2: class VersitUtils williamr@2: /** A utility class which provides functions for handling character set conversions, williamr@2: and for the parsing of character strings. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C static TBool EightBitEncoding(Versit::TVersitCharSet aCharSet); williamr@2: IMPORT_C static TBool EightBitEncoding(TUint aCharSetId); williamr@2: IMPORT_C static TUid ConArcEncodingUid(Versit::TVersitEncoding aEncoding); williamr@2: IMPORT_C static const TDesC8& IANACharacterSetName(Versit::TVersitCharSet aCharSet); williamr@2: IMPORT_C static const TDesC8& IANAEncodingName(Versit::TVersitEncoding aEncoding); williamr@2: IMPORT_C static TUid CharConvCharSetUid(Versit::TVersitCharSet aVersitSet); williamr@2: static Versit::TVersitCharSet CharSet(TUint aCharConvCharSetUid); williamr@2: IMPORT_C static TBool DescriptorContainsOnlySevenBitCharacters(const TDesC& aText); williamr@2: IMPORT_C static TBool RequiresEncoding(const TDesC& aText); williamr@2: IMPORT_C static void UncodeToNarrowL(const TDesC& aUnicode, TDes8& aNarrow, const Versit::TEncodingAndCharset& aEncodingCharset); williamr@2: IMPORT_C static void AddEscapedString(TDes& aDestination,const TDesC& aTextToEscape,Versit::TVersitCharSet aCharSet); williamr@2: IMPORT_C static void AddEscapedString(TDes& aDestination,const TDesC& aTextToEscape,TUint aCharSetId); williamr@2: IMPORT_C static void ConArcEncodeL(RReadStream& aSource, CBufBase& aTarget, TUid aConArcEncodingUid); williamr@2: IMPORT_C static void WrapLinesL(CBufBase& aBuffer, TInt aMaxLineLength); williamr@2: IMPORT_C static TBool CheckAndIgnoreCustomErrorL(TInt aError); williamr@2: IMPORT_C static void RemoveEscapeChars(TPtr8& aText); williamr@2: IMPORT_C static void RemoveEscapeChars(HBufC16& aText); williamr@2: IMPORT_C static void RemoveEscapeChars(HBufC16& aText, TUint aCharSetUid); williamr@2: IMPORT_C static void RemoveEscapeChars(TPtr16& aText, TUint aCharSetUid); williamr@2: IMPORT_C static TBool IsNoneWhiteSpaceChar(const TDesC8& aString); williamr@2: IMPORT_C static void StripWhiteSpace(TPtr8& aString); williamr@2: IMPORT_C static void StripWhiteSpace(TPtr16& aString); williamr@2: static inline TBool IsWhiteSpace(TUint aChar); williamr@2: static inline TBool IsBeginOrEnd(TUid aUid); williamr@2: IMPORT_C static TBool IsNoneWhiteSpaceWideChar(const TDesC16& aString); williamr@2: IMPORT_C static CDesCArray* ParseForArrayPropertiesL(TPtr16 aStringValue, TUint aLineCharacterSetId); williamr@2: // williamr@2: IMPORT_C static void AllocateAdditionalPropertyStorageL(CVersitTlsData& aTlsData, CParserProperty& aProperty, TPtr16& aStringValue, TUint aLineCharacterSetId); williamr@2: IMPORT_C static void FreeAdditionalPropertyStorageL(const CParserProperty& aProperty); williamr@2: IMPORT_C static CParserPropertyValue* AdditionalPropertyValueFromStorageL(const CParserProperty& aProperty); williamr@2: williamr@2: private: williamr@2: static void AddEscapedString(TBool aIsShiftJis,TDes& aDestination,const TDesC& aTextToEscape); williamr@2: static const TDesC &VersitUtils::EscapeChar(TBool aIsShiftJis); williamr@2: }; williamr@2: williamr@2: inline TBool VersitUtils::IsWhiteSpace(TUint aChar) williamr@2: /** Tests whether the specified character is white space williamr@2: (either a tab or a space character). williamr@2: williamr@2: @param aChar The character to test. williamr@2: @return ETrue if the character is white space, otherwise EFalse. */ williamr@2: {return (aChar==CVersitParser::ESpace || aChar==CVersitParser::EHTab);} williamr@2: inline TBool VersitUtils::IsBeginOrEnd(TUid aUid) williamr@2: /** Tests whether the specified UID is the Versit Begin or End UID (KVersitTokenBeginUid williamr@2: or KVersitTokenEndUid). williamr@2: williamr@2: @param aUid The UID to test. williamr@2: @return ETrue if the UID is the Begin or End UID, otherwise EFalse. */ williamr@2: {return (aUid.iUid==KVersitTokenBeginUid || aUid.iUid==KVersitTokenEndUid);} williamr@2: #endif