diff -r 2b7283837edb -r 3104fc151679 uiservicetab/vimpststorage/src/cvimpststoragemanager.cpp --- a/uiservicetab/vimpststorage/src/cvimpststoragemanager.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,209 +0,0 @@ -/* -* Copyright (c) 2008 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: Implementation of storage manager -* -*/ - - - -// INCLUDE FILES -#include "cvimpststorageserviceview.h" - -#include - -#include "cvimpststoragemanager.h" -#include "tvimpststoragepanics.h" -#include "uiservicetabtracer.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::InitialiseLibraryL -// Factory method that create the singleton instance of the storage manager -// ----------------------------------------------------------------------------- -// -void CVIMPSTStorageManager::InitialiseLibraryL() - { - TRACER_AUTO; - //see whether there is an instance in the TLS - //if not create the instance and set the same in TLS - CVIMPSTStorageManager *sm = static_cast( Dll::Tls() ); - if ( ! sm ) - { - // no existing instance, create a new one - CVIMPSTStorageManager *manager = CVIMPSTStorageManager::NewL(); - sm = manager; - CleanupStack::PushL( manager ); - User::LeaveIfError( Dll::SetTls( static_cast( sm ) ) ); - CleanupStack::Pop( manager ); - } - } - -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::Release -// Factory method to release the singleton instance of the storage manager -// ----------------------------------------------------------------------------- -// -TInt CVIMPSTStorageManager::Release() - { - TRACER_AUTO; - //if any instance in TLS get the same and delete it - CVIMPSTStorageManager *storage = static_cast( Dll::Tls() ); - if ( storage ) - { - delete storage; - Dll::SetTls( NULL ); - } - return KErrNone; - } - - - -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::Instance() -// ----------------------------------------------------------------------------- -// -CVIMPSTStorageManager& CVIMPSTStorageManager::Instance() - { - TRACER_AUTO; - //get the instance frm TLS and return the same - CVIMPSTStorageManager *storage = static_cast( Dll::Tls() ); - - __ASSERT_ALWAYS( storage, - User::Panic( KPanicCategory, KLIBNOTINITIALIZED ) ); - return *storage; - } - - - -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::NewL -// ----------------------------------------------------------------------------- -// - CVIMPSTStorageManager* CVIMPSTStorageManager::NewL() - { - TRACER_AUTO; - //creates the instance - CVIMPSTStorageManager* self = new( ELeave ) CVIMPSTStorageManager; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::ConstructL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CVIMPSTStorageManager::ConstructL() - { - TRACER_AUTO; - } - - -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::~CVIMPSTStorageManager -// ----------------------------------------------------------------------------- -// - CVIMPSTStorageManager::~CVIMPSTStorageManager() - { - TRACER_AUTO; - //release all the existing views - iServiceViewList.ResetAndDestroy(); - } - -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::CreateServiceViewL -// ----------------------------------------------------------------------------- -// -CVIMPSTStorageServiceView* CVIMPSTStorageManager::CreateServiceViewL( TUint32 aServiceId, - const TDesC& aStoreName, - const TDesC& aServiceName ) - { - TRACER_AUTO; - //creates a new view based on the service id. - TInt index = KErrNotFound; - CVIMPSTStorageServiceView* serviceView = NULL; - - //check if the view already exists in the viewlist - index = FindServiceView(aServiceId); - if( KErrNotFound == index ) - { - TRACE( "service does not exit" ); - // service view is not found - // check if store name is valid create a service view for aServiceId - if( aStoreName.Length() ) - { - TRACE(" store name is valid" ); - serviceView = CVIMPSTStorageServiceView::NewL(aServiceId, - aStoreName, aServiceName); - iServiceViewList.Append(serviceView); - TRACE( "new view created for serviceId = %d",aServiceId ); - } - // if store name is not valid ,return NULL - } - else - { - TRACE( " service already exist = %d",aServiceId ); - serviceView = iServiceViewList[ FindServiceView(aServiceId)]; - } - //return the extisting view from the viewlist - return serviceView; - } -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::FindServiceView -// ----------------------------------------------------------------------------- -// -TInt CVIMPSTStorageManager::FindServiceView( TUint32 aServiceId) - { - TRACER_AUTO; - //search whether the view exists in the view list. - TInt index = KErrNotFound; - TInt count = iServiceViewList.Count(); - for(TInt i = 0; i < count; i++ ) - { - if( aServiceId == iServiceViewList[ i ]->GetServiceId() ) - { - TRACE( "aServiceId found = %d" ,aServiceId ); - index = i; - break; - } - } - return index; - } - - -// ----------------------------------------------------------------------------- -// CVIMPSTStorageManager::RemoveServiceView -// ----------------------------------------------------------------------------- -// -void CVIMPSTStorageManager::RemoveServiceView( TUint32 aServiceId) - { - TRACER_AUTO; - //searches and removes the view from the view list. - TInt index = FindServiceView(aServiceId); - if( index >= 0 ) - { - TRACE( "aServiceId found = %d" ,aServiceId ); - //view exists, so delete and remove the same - CVIMPSTStorageServiceView* serviceView = iServiceViewList[ index ]; - iServiceViewList.Remove( index ); - delete serviceView; - iServiceViewList.Compress(); - } - } - -// End of File