First public contribution.
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
19 NONSHARABLE_CLASS(CFbsBackgroundCompressionQueueElement): public CBase
24 friend class CFbsBackgroundCompression;
26 CFbsBackgroundCompressionQueueElement(CBitmapObject* aSrcObj, TBitmapfileCompressionScheme aScheme);
27 ~CFbsBackgroundCompressionQueueElement();
28 void CompleteOutstandingRequestAndDestroy(TInt aReason);
29 void CompleteOutstandingRequest(const CSession2* aSession);
33 CBitmapObject* iSourceObject;
34 TBitmapfileCompressionScheme iCompressionScheme;
38 NONSHARABLE_CLASS(CFbsBackgroundCompression): public CActive
44 static CFbsBackgroundCompression* NewL(CFbTop& aFbTop);
45 ~CFbsBackgroundCompression();
46 TInt AddToCompressionQueue(CBitmapObject* aSrcObj, TBitmapfileCompressionScheme aScheme, const RMessage2* aMessage);
47 void RemoveFromCompressionQueue(CBitmapObject* aSrcObj);
48 void CompleteOutstandingRequests(const CSession2* aSession);
52 CFbsBackgroundCompression(CFbTop& aFbTop);
54 TInt PrepareCompression();
55 void FinalizeCompression(const TRequestStatus& aStatus);
58 static TInt ThreadFunction(CFbsBackgroundCompression* aSelf);
66 TDblQue<CFbsBackgroundCompressionQueueElement> iCompressionQueue;
67 CBitmapObject* volatile iBitmapObject;
68 volatile TBitmapfileCompressionScheme iCompressionScheme;