diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/SigComp/CompDeflate/inc/SigCompDeflateContext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/SigComp/CompDeflate/inc/SigCompDeflateContext.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,338 @@ +/* +* Copyright (c) 2003-2009 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: +* Name : SigCompDeflate.h +* Part of : CDeflateComp +* Interface : +* compression context +* Version : 1.0 +* +*/ + + + + +/** + @internalComponent +*/ + + +#ifndef SIGCOMPCOMPDEFLATECONTEXT_H +#define SIGCOMPCOMPDEFLATECONTEXT_H + +#include "SigCompCompressionContext.h" + +class TStateItem; + +/* +* deflate compression context saved in compartment beetwen +* CompressMessageL() calls. +*/ + +class CSigCompDeflateContext: public CSigCompCompressionContext + { + public: + CSigCompDeflateContext(); + + virtual ~CSigCompDeflateContext(); + + /** + * save the window size for future use. + * + * @param aWindowSize window size + */ + void SetWindowSize(TInt aWindowSize); + + /** + * return previously saved window size + * + * @returns window size + */ + TInt WindowSize(); + + /** + * save the current position for future use. + * + * @param aCurrentPosition current position + */ + void SetCurrentPosition(TInt aCurrentPosition); + + /** + * return previously saved 'current position' + * + * @returns saved 'current position' + */ + TInt CurrentPosition(); + + /** + * save the window for future use. ownership is transfered + * + * @param aWindow window pointer + */ + void SetWindow(CArrayFixFlat* aWindow); + + /** + * return saved window pointer. + * + * @returns window size + */ + CArrayFixFlat* Window(); + + /** + * set dictionary state item + * + * @params aStateItem to be set + * @params aStateItemLength length of state item + */ + void SetStateItem(TStateItem* aStateItem, TInt aStateItemLength); + + /** + * get dictionary state item + * + * @returns state item, may be null. + */ + TStateItem* StateItem(); + + /** + * get dictionary state item length + * + * @returns state item length + */ + TInt StateItemLength(); + + /** + * set bytecode confirmation + * + * @param aBytecodeStateConfirmed is bytecode state confirmed + * + */ + void SetBytecodeStateConfirmed(TBool aBytecodeStateConfirmed); + + /** + * get bytecode confirmation + * + * @returns is bytecode state confirmed + * + */ + TBool BytecodeStateConfirmed() const; + + /** + * set bytecode state hash + * + * @param aHash bytecode state hash + * + */ + void SetBytecodeHash(const TUint8* aHash); + + /** + * get bytecode state hash + * + * @returns bytecode state hash + * + */ + const TUint8* BytecodeHash() const; + + /** + * set circular buffer confirmation + * + * @param aStateConfirmed is circular buffer state confirmed + * + */ + void SetCBStateConfirmed(TBool aStateConfirmed); + + /** + * get circular buffer confirmation + * + * @returns is circular buffer state confirmed + * + */ + TBool CBStateConfirmed() const; + + /** + * set circular buffer state hash + * + * @param aHash circular buffer state hash + * + */ + void SetCBStateHash(const TUint8* aHash); + + /** + * get circular buffer state hash + * + * @returns circular buffer state hash + * + */ + const TUint8* CBStateHash() const; + + /** + * set circular buffer state length + * + * @param aLength circular buffer state length + * + */ + void SetCBStateLength(TInt aLength); + + /** + * get circular buffer state length + * + * @returns circular buffer state length + * + */ + TInt CBStateLength() const; + + /** + * Set iUploadState flag + * + * @param aUploadState value to be set + * + */ + void SetUploadState(TBool aUploadState); + + /** + * get iUploadState + * + * @returns iUploadstate field + * + */ + TBool UploadState(); + + /** + * returns ETrue if user state was already uploaded to the other side, + * EFalse if it was not. + * + * @returns iStateUploaded. + */ + TBool StateUploaded(); + + /** + * set uploaded state flag + * + * @params aState state to be set + */ + void SetStateUploaded(TBool aState); + + /** + * set remote state memory size + * + * @param aSms remote state memory size + * + */ + void SetSms(TInt aSms); + + /** + * get remote state memory size + * + * @returns remote state memory size + * + */ + TInt Sms() const; + + /** + * set decompression state memory size + * + * @param aDms remote decompression memory size + * + */ + void SetDms(TInt aDms); + + /** + * get remote decompression memory size + * + * @returns remote decompression memory size + * + */ + TInt Dms() const; + + + /** + * set local udvm memory size + * + * @param aUdvmSize local udvm memory size + * + */ + void SetUdvmSize(TInt aUdvmSize); + + /** + * get local udvm memory size + * + * @returns local udvm memory size + * + */ + TInt UdvmSize() const; + + /** + * set local circular buffer size + * + * @param aCBSize local circular buffer size + * + */ + void SetCBSize(TInt aCBSize); + + /** + * get local circular buffer size + * + * @returns local circular buffer size + * + */ + TInt CBSize() const; + + private: + + /** should the state given by user be uploaded? */ + TBool iUploadState; + + /** dictionary state item */ + TStateItem* iStateItem; + + /** length of string part of dictionary state item */ + TInt iStateItemLength; + + + /** current position within window, points to currently encoded char */ + TInt iCurrentPosition; + + /** size of window */ + TInt iWindowSize; + + /** compression window, dynamic dictionary*/ + CArrayFixFlat* iWindow; + + /** hash id, used to determine whenever we lost sync or not*/ + TUint8 iCBStateHash[6]; + TInt iCBStateLength; + + /** hash id, used to determine whenever we lost sync or not*/ + TUint8 iBytecodeStateHash[6]; + + /** circular buffer state confirmed */ + TBool iCBStateConfirmed; + + /** bytecode state confirmed */ + TBool iBytecodeStateConfirmed; + + /** remote state memory size */ + TInt iStateMemorySize; + + /** remote decompression memory size */ + TInt iDecompressionMemorySize; + + /** local udvm memory size */ + TInt iUdvmSize; + + /** local circular buffer size */ + TInt iCBSize; + + }; + +#endif