diff -r 000000000000 -r 62f9d29f7211 webservices/wsstar/wsstarplugin/inc/wsstardictionary.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wsstar/wsstarplugin/inc/wsstardictionary.h Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,185 @@ +/* +* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Header declaration +* +*/ + + + + + + + + + + + +#ifndef WSSTAR_DICTIONARY_H +#define WSSTAR_DICTIONARY_H + +// INCLUDES +#include +#include +#include "sensessionhandler.h" +#include "wsstarservicesession.h" + +#include "seninternalserviceconsumer.h" +#include "SenXmlElement.h" +#include "sentransportbase.h" + + +class CWSStarDictHttpClient; +class CZlibDictionary; +class CDictXml; + +#if !defined( EKA2 ) && !defined( RD_SECURE_PRIV_DATA ) + _LIT(KPrivateFolder, "C:\\system\\data\\"); +#endif + +/** + * Class: + * + */ +class CWSStarDictionary : public CBase + { + + public: + + + /** + * Function: NewL + * + * Description: Create instance of concrete implementation. Note that ECOM + * Returns: Instance of this class. + */ + static CWSStarDictionary* NewL(CSIF& aSIF, RFileLogger& aLogger); + + /** + */ + TInt InvokeL(MSenHandlerContext* iHndlrCtx, CSenWSDescription* aSD); + TInt LoadDictionariesL(); +// TInt LoadDictionariesL(CSenElement* aPolicy); + void DataTrafficDetails( TSenDataTrafficDetails& aDetails); + ~CWSStarDictionary(); + RFileLogger* Log() const; + + protected: + /** + * Function: CWSStarDictionary + * + * Discussion: Perform the first phase of two phase construction + */ + CWSStarDictionary(CSIF& aSIF, RFileLogger& aLogger); + + /** + * Function: ConstructL + * + * Discussion: Perform the second phase construction of a + * CImplementationClassPlus object. + */ + void ConstructL(); + + private: + void CreateZlibL(const TDesC8* name, CSenElement* aDict); + TInt GetHttpDictionaryL(const TDesC8& aEndpoint, MSenHandlerContext* iHndlrCtx); + void SaveFileL(const TDesC8& aUri, const TDesC8& aContents); + TInt SaveL(TFileName aFileName, const TDesC8& aContents); + TInt LoadDictionariesL(CSenElement* aPolicy); + void LoadFileL(CZlibDictionary* aDict); + TInt SaveConfigurationL(); + TBool IfDictionaryExist(CZlibDictionary* aDict); + void CreateMSZlibL(const TDesC8* name, CSenElement* aDict); + CZlibDictionary* Dictionary(const TDesC8& aName); + + TPtrC8 WriteToBufL(CBufBase& aBuf); + HBufC8* WriteAllAsXMlL(); + TInt WriteL(RWriteStream& aWriteStream); + + + + RPointerArray iDictionaires; + CSIF* iSIF; + HBufC* iSavePath; + TUint32 iIapId; + RFileLogger& iLog; //not owned + TSenDataTrafficDetails iDictDetails; + }; + +class CZlibDictionary : public CBase +{ + public: + static CZlibDictionary* NewL( const TDesC8& aDictUri, + const TDesC8* aDictName, + const TDesC8* aDictType, + const TDesC8* aDictCheckSum ); + + static CZlibDictionary* NewLC( const TDesC8& aDictUri, + const TDesC8* aDictName, + const TDesC8* aDictType, + const TDesC8* aDictCheckSum ); + + virtual ~CZlibDictionary(); + + TBool Verified(); + TPtrC8 DictUri(); + TPtrC8 DictName(); + TPtrC8 DictType(); + TPtrC8 DictContents(); + TUint32 DictCheckSum(); + TPtrC8 DictCheckSumPtr(); + + TInt ResetL(CZlibDictionary* aDict); + + TInt SetDictContentsL(const TDesC8& aDictContents); + TInt DeleteDictContents(); + +private: + TInt VerifyContentsL(const TDesC8& aDictContents); + CZlibDictionary(); + void ConstructL( const TDesC8& aDictUri, + const TDesC8* aDictName, + const TDesC8* aDictType, + const TDesC8* aDictCheckSum ); +private: + + HBufC8* iDictUri; //uri to download + HBufC8* iDictName; //name or mws:Id tag + HBufC8* iDictType; //zlib or mws:type + HBufC8* iDictContents; //contents + HBufC8* iDictCheckSum; //provided checksum + TUint32 iChkSum; //chksum in integer form + + TBool iVerfied; +}; + +class CDictXml :public CSenDomFragment +{ +public: + static CDictXml* NewL(); + static CDictXml* NewLC(); + ~CDictXml(); + + TInt ReadFileL(TFileName aPath); + CSenElement* XMLDocL(); +private: + + CDictXml(); + void ConstructL(); + TInt count; + TBool iParsed; +}; +#endif // WSSTAR_DICTIONARY_H + + +