diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGImpl/inc/SVGMemoryManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svgtopt/SVG/SVGImpl/inc/SVGMemoryManager.h Wed Nov 03 18:56:10 2010 +0200 @@ -0,0 +1,166 @@ +/* +* Copyright (c) 2003 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: SVG Implementation header file + * +*/ + + +#ifndef __MEMORYMANAGER_H__ +#define __MEMORYMANAGER_H__ + +#if !defined(__E32BASE_H__) +#include +#endif + +#include "GfxFloatFixPt.h" + +//forward declerations +class CCssValue; + +class CPaintCssValueImpl; +class CFloatCssValueImpl; +class CIntCssValueImpl; +class CStrCssValueImpl; +class CVectorCssValueImpl; +class CClrCssValueImpl; + +class CSvgElementImpl; + +class CSvgMemoryManager : public CBase + { + public: + + static CSvgMemoryManager* NewL(); + + static CSvgMemoryManager* NewLC(); + + CSvgMemoryManager(); + + ~CSvgMemoryManager(); + + void ConstructL(); + + void Print(); + + //this really shouldnt require the CSvgElementImpl to be passed to it + //but our paint class is so messed up + CCssValue* CloneCssValueL(CCssValue* aValue); + +//---------------------------------------------------------- +// CPaintCssValueImpl +//---------------------------------------------------------- + public: + CPaintCssValueImpl* GetCssPaintObjectL( CSvgElementImpl* aElementImpl = NULL ); + CPaintCssValueImpl* GetCssPaintObjectL( const TDesC& aValue, CSvgElementImpl* aElementImpl ); + + private: + void AllocateCssPaintBlockL( ); + + //each of the pointers in this contains a block of #granularity Paints + RPointerArray iCPaintCssValueImplArrays; + + CPaintCssValueImpl* iCPaintCssValueImplArray; + TInt iCurrentPaintObjectIndex; + static const TUint KCssPaintBlockSize; + +//---------------------------------------------------------- +// CFloatCssValueImpl +//---------------------------------------------------------- + public: + CFloatCssValueImpl* GetCssFloatObjectL( float aFloat = 0.0 ); + CFloatCssValueImpl* GetCssFloatObjectL( CFloatCssValueImpl* aFloatValue ); + CFloatCssValueImpl* GetCssFloatObjectL( const TDesC& aValueString ); + + private: + void AllocateCssFloatBlockL( ); + + //each of the pointers in this contains a block of #granularity Floats + RPointerArray iCFloatCssValueImplArrays; + + CFloatCssValueImpl* iCFloatCssValueImplArray; + TInt iCurrentFloatObjectIndex; + static const TUint KCssFloatBlockSize; + +//---------------------------------------------------------- +// CClrCssValueImpl +//---------------------------------------------------------- + public: + CClrCssValueImpl* GetCssClrObjectL( ); + CClrCssValueImpl* GetCssClrObjectL( const TDesC& aValueString ); + + private: + void AllocateCssClrBlockL( ); + + //each of the pointers in this contains a block of #granularity Clrs + RPointerArray iCClrCssValueImplArrays; + + CClrCssValueImpl* iCClrCssValueImplArray; + TInt iCurrentClrObjectIndex; + static const TUint KCssClrBlockSize; + +//---------------------------------------------------------- +// CIntCssValueImpl +//---------------------------------------------------------- + public: + CIntCssValueImpl* GetCssIntObjectL( TInt aInitValue = 0 ); + CIntCssValueImpl* GetCssIntObjectL( const TDesC& aValueString ); + CIntCssValueImpl* GetCssIntObjectL( CIntCssValueImpl* aIntValue ); + + private: + void AllocateCssIntBlockL( ); + + //each of the pointers in this contains a block of #granularity Ints + RPointerArray iCIntCssValueImplArrays; + + CIntCssValueImpl* iCIntCssValueImplArray; + TInt iCurrentIntObjectIndex; + static const TUint KCssIntBlockSize; + +//---------------------------------------------------------- +// CStrCssValueImpl +//---------------------------------------------------------- + public: + CStrCssValueImpl* GetCssStrObjectL( const TDesC& aValueString ); + + private: + void AllocateCssStrBlockL( ); + + //each of the pointers in this contains a block of #granularity Strs + RPointerArray iCStrCssValueImplArrays; + + CStrCssValueImpl* iCStrCssValueImplArray; + TInt iCurrentStrObjectIndex; + static const TUint KCssStrBlockSize; + +//---------------------------------------------------------- +// CVectorCssValueImpl +//---------------------------------------------------------- + public: + CVectorCssValueImpl* GetCssVectorObjectL( const TDesC& aValueString ); + CVectorCssValueImpl* GetCssVectorObjectL( CArrayFix* aValue ); + + private: + void AllocateCssVectorBlockL( ); + + //each of the pointers in this contains a block of #granularity Vector + RPointerArray iCVectorCssValueImplArrays; + + CVectorCssValueImpl* iCVectorCssValueImplArray; + TInt iCurrentVectorObjectIndex; + static const TUint KCssVectorBlockSize; + + +}; + +#endif