sl@0: /* sl@0: * Copyright (c) 1995-2010 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: #ifndef TISOLATEDFONTSTORE_H sl@0: #define TISOLATEDFONTSTORE_H sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: /** sl@0: Class to create an isolated version of the font store; upon construction sl@0: the font store pointer contains a FontStore in its initial state. Functions sl@0: are provided to complete the loading of rasterizers and fonts if required. sl@0: */ sl@0: class CTIsolatedFontStore : public CBase sl@0: { sl@0: public: sl@0: ~CTIsolatedFontStore(); sl@0: sl@0: static CTIsolatedFontStore* NewL(); sl@0: static CTIsolatedFontStore* NewLC(); sl@0: sl@0: static CTIsolatedFontStore* NewL(RHeap*); sl@0: static CTIsolatedFontStore* NewLC(RHeap*); sl@0: sl@0: void LoadRasterizersL(); sl@0: sl@0: private: sl@0: sl@0: CTIsolatedFontStore(); sl@0: CTIsolatedFontStore(RHeap* aHeap); sl@0: void ConstructL(); sl@0: void ListImplementationsWithRetry(TUid& aInterfaceUid, RImplInfoPtrArray &aImplementationArray, TBool aRomOnly); sl@0: void SafeInstallOfRasterizerL(TUid aInterfaceImplUid); sl@0: sl@0: public: sl@0: CFontStore* iFs; sl@0: private: sl@0: RHeap* iHeap; sl@0: sl@0: // Indicate the ownership of iHeap. sl@0: // ETrue means iHeap is allocated in ConstructL() and owned by CTIsolatedFontStore in current process; sl@0: // EFalse means iHeap is a pointer to a heap which is passed in as parameter. Do not take ownership. sl@0: TBool iIsHeapOwner; sl@0: }; sl@0: sl@0: #endif // TISOLATEDFONTSTORE_H