--- /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 <bautils.h> // 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