photosgallery/controllers/imageviewer/src/glximageviewermanager.cpp
changeset 4 57d388cc48c1
parent 1 9ba538e329bd
child 12 ce1c7ad1f18b
--- 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 <glxsingletonstore.h>
 #include <glxtracer.h>
 
 #include <f32file.h>
 
-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 )
         {