diff -r 000000000000 -r 2f259fa3e83a commonuis/CommonUi/inc/DocResourceFile.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonuis/CommonUi/inc/DocResourceFile.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,94 @@ +/* +* Copyright (c) 2002-2005 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: Tiny helper class for adding and removing DocHandler's +* resource file for resource pool of the client app +* +*/ + + +#ifndef DOCRESOURCEFILE_H +#define DOCRESOURCEFILE_H + +#include // For NearestLanguageFile(..) + +class CDocResourceFile : public CBase + { + public: + // Constructor + CDocResourceFile( const TDesC& aResFilename, RFs& aFs ) : + iResFilename( aResFilename ), + iFs( aFs ) + { +#ifdef _DEBUG + iResCount = 0; +#endif + } + + // Destructor + ~CDocResourceFile() + { + CEikonEnv::Static()->DeleteResourceFile( iResFileOffset ); +#ifdef _DEBUG + RDebug::Print( _L("DocumentHandler: CDocResourceFile::~CDocResourceFile : %S removed. Count: %d"), &iResFilename, --iResCount); +#endif + } + + // Add resource file to the resource pool. + // Pushes it self to the cleanupStack. + static void AddLC( + const TDesC& aResFilename, // Resource file name + RFs& aFs ) // Connected FileServer client + { + CDocResourceFile* self = + new ( ELeave ) CDocResourceFile( aResFilename, aFs ); + CleanupStack::PushL( self ); + self->ConstructL(); + } + + // Removes the resource file and destroys it self + static void Remove() + { + CleanupStack::PopAndDestroy(); // self + } + + private: + + // Epoc constructor + void ConstructL() + { + TFileName resourceFile( iResFilename ); + BaflUtils::NearestLanguageFile( iFs, resourceFile ); + iResFileOffset = CCoeEnv::Static()->AddResourceFileL( resourceFile ); +#ifdef _DEBUG + RDebug::Print( _L("DocumentHandler: CDocResourceFile::ConstructL : %S added. Count: %d"), &iResFilename, ++iResCount ); +#endif + } + + // Remember the resrource file offset + TInt iResFileOffset; + + // Resource filename + TFileName iResFilename; + + // File server client + RFs iFs; + +#ifdef _DEBUG + TInt iResCount; +#endif + }; + +#endif // DOCRESOURCEFILE_H + +// End of File