diff -r 9a9c174934f5 -r 57d388cc48c1 photosgallery/controllers/imageviewer/src/glximageviewermanager.cpp --- a/photosgallery/controllers/imageviewer/src/glximageviewermanager.cpp Tue Jan 26 11:58:28 2010 +0200 +++ b/photosgallery/controllers/imageviewer/src/glximageviewermanager.cpp Tue Feb 02 00:10:37 2010 +0200 @@ -17,42 +17,43 @@ #include "glximageviewermanager.h" - +#include #include #include -CGlxImageViewerManager* singleInstance = NULL; /// The singleton instance - EXPORT_C CGlxImageViewerManager* CGlxImageViewerManager::InstanceL() { TRACER("CGlxImageViewerManager::InstanceL()"); - if ( NULL != singleInstance ) - { - singleInstance->IncrementRefCount(); - } - else - { - singleInstance = CGlxImageViewerManager::NewLC(); - CleanupStack::Pop( singleInstance ); - } - - return singleInstance; + return CGlxSingletonStore::InstanceL(&NewL); } EXPORT_C void CGlxImageViewerManager::DeleteInstance() { TRACER("CGlxImageViewerManager::DeleteInstance()"); - iRefCount--; - - if (0 == iRefCount) - { - delete this; - } + CGlxSingletonStore::Close(this); + } + +EXPORT_C HBufC* CGlxImageViewerManager::ImageUri() + { + TRACER("CGlxImageViewerManager::ImageUri()"); + return iImageUri; + } + +EXPORT_C RFile64& CGlxImageViewerManager::ImageFileHandle() + { + TRACER("CGlxImageViewerManager::ImageFileHandle()"); + return *iFile; + } + +EXPORT_C TBool CGlxImageViewerManager::IsPrivate() + { + TRACER("CGlxImageViewerManager::IsPrivate()"); + return iIsPrivate; } CGlxImageViewerManager::CGlxImageViewerManager() - : iRefCount(0), iImageUri(NULL), iFile(NULL), iIsPrivate(EFalse) + : iImageUri(NULL), iFile(NULL), iIsPrivate(EFalse) { TRACER("CGlxImageViewerManager::CGlxImageViewerManager()"); // No implementation required @@ -61,8 +62,7 @@ CGlxImageViewerManager::~CGlxImageViewerManager() { TRACER("CGlxImageViewerManager::~CGlxImageViewerManager()"); - delete iImageUri; - + Reset(); } CGlxImageViewerManager* CGlxImageViewerManager::NewLC() @@ -76,7 +76,7 @@ CGlxImageViewerManager* CGlxImageViewerManager::NewL() { - TRACER("CGlxImageViewerManager::NewLC()"); + TRACER("CGlxImageViewerManager::NewL()"); CGlxImageViewerManager* self = CGlxImageViewerManager::NewLC(); CleanupStack::Pop(self); return self; @@ -85,7 +85,6 @@ void CGlxImageViewerManager::ConstructL() { TRACER("CGlxImageViewerManager::ConstructL()"); - IncrementRefCount(); } // --------------------------------------------------------------------------- @@ -104,10 +103,8 @@ { User::Leave(KErrNotSupported); } - else - { - iImageUri = aFileName.AllocL(); - } + + iImageUri = aFileName.AllocL(); } // --------------------------------------------------------------------------- @@ -122,6 +119,7 @@ iFile->Close(); } delete iFile; + iFile = NULL; if ( iImageUri ) {