diff -r 10e98eab6f85 -r a359256acfc6 webengine/widgetinstaller/Inc/WidgetBackupRegistryXml.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/widgetinstaller/Inc/WidgetBackupRegistryXml.h Thu Aug 27 07:44:59 2009 +0300 @@ -0,0 +1,163 @@ +/* +* Copyright (c) 2008 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: This file contains the header file of the CWidgetBackupRegistryXml class. +* +* This class processes persistent registry data in XML. +* +*/ + + +#ifndef WIDGETBACKUPREGISTRYXML_H +#define WIDGETBACKUPREGISTRYXML_H + +// INCLUDES +#include +#include "WidgetRegistryConstants.h" +#include "WidgetPropertyValue.h" + +class RFs; +/** +* CWidgetBackupRegistryXml +* @since 5.0 +*/ +class CWidgetBackupRegistryXml: public CBase + { +public: + + /** + * Two-phased constructor. + */ +// static CWidgetBackupRegistryXml* NewL(); + static CWidgetBackupRegistryXml* NewL(); + + /** + * Destructor. + */ + virtual ~CWidgetBackupRegistryXml(); + +protected: + + /** + * C++ default constructor. + */ + CWidgetBackupRegistryXml(); + + /** + * Symbian 2nd phase constructor + */ + void ConstructL(); + +public: + + /** + * Traverse to the next Node + * + * @param aNode: current node + * @since 5.0 + * @return next node + */ + xmlNode* TraverseNextNode( xmlNode* aNode ); + + /** + * Convert a string in some encoding to UCS2. + * + * @param aEncoding encoding number + * @param aUnicodeSizeMultiplier how many input bytes per unicode char + * @param aInBuf input data + * @param aOutBuf output data, allocated and returned to caller + * @param aFileSession + * @since 5.0 + * @return void + */ + void ToUnicodeL( TInt aEncoding, + TInt aUnicodeSizeMultiplier, + TPtrC8 aInBuf, HBufC16** aOutBuf, + RFs& aFileSession ); + + /** + * Convert a string to some encoding from UCS2. + * + * @param aEncoding encoding number + * @param aUnicodeSizeMultiplier how many input bytes per unicode char + * @param aInBuf input data + * @param aOutBuf output data, allocated and returned to caller + * @param aFileSession + * @since 5.0 + * @return void + */ + void FromUnicodeL( TInt aEncoding, + TInt aUnicodeSizeMultiplier, + TPtrC16 aInBuf, HBufC8** aOutBuf, + RFs& aFileSession ); + + + /** + * Utility to bundle extraction of XML text content + * + * @param aEncoding input buffer encoding + * @param aUnicodeSizeMultiplier how many bytes of input make one unicode char + * @param aInBuf input data in encoding + * @param aOutBuf malloc'ed output buf, caller takes ownership + * @param aFileSession CCnvCharacterSetConverter requires it + * @since 5.0 + * @return void + */ + void GetContentL( RFs& aFileSession, + xmlDocPtr aDoc, + xmlNode* aNode, + HBufC** aContent ); + + /** + * Utility to extract XML content as a string + * + * @param aFileSession CCnvCharacterSetConverter requires it + * @param aDoc + * @param aNode + * @param aContent + * @since 5.0 + * @return void + */ + void GetTextContentAsStringL( RFs& aFileSession, + xmlDocPtr aDoc, + xmlNode* aNode, + HBufC** aContent ); + + void GetSubtreeAsStringL (RFs& aFileSession, xmlDocPtr aDoc, xmlNode* aNode, HBufC** aBuf, TInt& aLen); + + xmlChar* EncodeStringL(xmlDocPtr aDoc, xmlChar* aStringToConvert); + HBufC* EncodeStringL(xmlDocPtr aDoc, TPtrC aStringToConvert, RFs& aFileSession); + + TInt EncodedStringLength(TPtrC8 aStringToConvert); + + TInt GetPropertyId( + const TDesC& aKeyName ); + + const TPtrC& XmlPropertyName( TInt aPropertyId ); + + class TWidgetProperty + { + public: + TInt id; // the TWidgetPropertyId for this name + TPtrC name; + TWidgetPropertyType type; // the type if valid + TInt flags; + }; + + // Table describing registry entries for XML processing. Used by + // parser and generator. + + RArray iProperties; + }; + +#endif // WIDGETREGISTRYXML_H