contentpublishingsrv/contentpublishingserver/cpsqlitestorage/src/cpstorageengine.cpp
changeset 73 4bc7b118b3df
parent 66 32469d7d46ff
child 80 397d00875918
child 81 5ef31a21fdd5
--- a/contentpublishingsrv/contentpublishingserver/cpsqlitestorage/src/cpstorageengine.cpp	Mon May 03 12:48:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +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:  
- *
-*/
-
-
-#include "cpstorageengine.h"
-#include "cpliwmap.h"
-#include "ccontentmap.h"
-#include "cpdebug.h"
-#include "cpssqlconstants.h"
-#include "cpserverdef.h"
-#include <centralrepository.h>
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::CCpStorageEngine()
-//
-// ---------------------------------------------------------------------------
-//
-CCpStorageEngine::CCpStorageEngine()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::ConstructL()
-//
-// ---------------------------------------------------------------------------
-//
-void CCpStorageEngine::ConstructL()
-    {
-#ifdef CONTENT_PUBLISHER_DEBUG
-    if(!CCPDebug::Enable())
-        {
-        iDebug = CCPDebug::NewL( KCPDebugFileName2 );
-        }
-#endif
-    CP_DEBUG( _L8("CCpStorageEngine::ConstructL()") );
-    
-    iRepository = CRepository::NewL( KServerUid );
-    TBool createNew( EFalse );
-    TInt err = iSqlDb.Open( KCPdatabase, &KMdsSqlDbaConfig );
-    if( err == KSqlErrCorrupt )
-    	{
-    	DeleteCorruptedDbL();
-    	createNew = ETrue;
-    	}
-    else if( err/* == KErrNotFound */)
-    	{
-    	createNew = ETrue;
-    	}
-    
-    if ( createNew )
-        {
-        CreateNewDbL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::NewL()
-//
-// ---------------------------------------------------------------------------
-//
-CCpStorageEngine* CCpStorageEngine::NewL()
-    {
-    CCpStorageEngine* self = CCpStorageEngine::NewLC( );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::NewLC()
-//
-// ---------------------------------------------------------------------------
-//
-CCpStorageEngine* CCpStorageEngine::NewLC()
-    {
-    CCpStorageEngine* self = new (ELeave) CCpStorageEngine();
-    CleanupStack::PushL( self );
-    self->ConstructL( );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::~CCpStorageEngine() 
-//
-// ---------------------------------------------------------------------------
-//
-CCpStorageEngine::~CCpStorageEngine()
-    {
-    CP_DEBUG( _L8("CCpStorageEngine::~CCpStorageEngine()") );
-    iSqlDb.Close( );
-    delete iRepository;
-#ifdef CONTENT_PUBLISHER_DEBUG
-    delete iDebug;
-#endif
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::CreateTablesL 
-//
-// ---------------------------------------------------------------------------
-//
-void CCpStorageEngine::CreateTablesL()
-    {
-    CP_DEBUG( _L8("CCpStorageEngine::CreateTablesL()") );
-
-    //Main Table
-    User::LeaveIfError( iSqlDb.Exec( KSQLCreateMainTable ) );
-    User::LeaveIfError( iSqlDb.Exec( KSQLIndexOnMain_Publisher ) );
-    User::LeaveIfError( iSqlDb.Exec( KSQLIndexOnMain_Content_type ) );
-    //Publisher Table
-    User::LeaveIfError( iSqlDb.Exec( KSQLCreatePublisherTable ) );
-    User::LeaveIfError( iSqlDb.Exec( KSQLIndexOnPub_Content_type ) );
-    User::LeaveIfError( iSqlDb.Exec( KSQLIndexOnPub_Content_type_Content_id ) );
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::GetListL
-//
-// ---------------------------------------------------------------------------
-//    
-void CCpStorageEngine::GetListL( const CLiwMap* aMap,
-    CLiwGenericParamList& aList )
-    {
-    CP_DEBUG( _L8("CCpStorageEngine::GetListL()") );
-    const CCPLiwMap* map = static_cast<const CCPLiwMap*>(aMap);
-    RArray<TInt32> itemsToDelete;
-    TUint numberOfItems = map->GetListL( iSqlDb, &aList, itemsToDelete );
-    //delete outdated items
-    CContentMap* removeItemMap = CContentMap::NewLC( );
-    for ( TInt i = 0; i<itemsToDelete.Count( ); i++ )
-        {
-        removeItemMap->InsertL( KId, TLiwVariant( itemsToDelete[i] ) );
-        removeItemMap->InsertL( KType, TLiwVariant( KCpData ) );
-        RemoveL( removeItemMap );
-        removeItemMap->Remove( KId );
-        }
-    CleanupStack::PopAndDestroy( removeItemMap );
-    itemsToDelete.Reset( );
-
-    if ( numberOfItems == 0 )
-        {
-        User::Leave( KErrNotFound );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::AddL
-//
-// ---------------------------------------------------------------------------
-//  
-TInt32 CCpStorageEngine::AddL( const CLiwMap* aMap )
-    {
-    CP_DEBUG( _L8("CCpStorageEngine::AddL()") );
-    TInt32 id(0);
-    const CCPLiwMap* map = static_cast<const CCPLiwMap*>(aMap);
-    if ( iCallback )
-        {
-        CLiwDefaultList* listOfMaps = CLiwDefaultList::NewLC( );
-        id = map->AddL( iSqlDb, listOfMaps );
-        iCallback->HandleChangeL( listOfMaps );
-        CleanupStack::PopAndDestroy( listOfMaps ) ;
-        }
-    else
-        {
-        id = map->AddL( iSqlDb );
-        }
-    return id;
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::RemoveL
-//
-// ---------------------------------------------------------------------------
-//  
-void CCpStorageEngine::RemoveL( const CLiwMap* aMap )
-    {
-    CP_DEBUG( _L8("CCpStorageEngine::RemoveL()") );
-    const CCPLiwMap* map = static_cast<const CCPLiwMap*>(aMap);
-    if ( iCallback )
-        {
-        CLiwDefaultList* listOfMaps = CLiwDefaultList::NewLC( );
-        map->RemoveL( iSqlDb, listOfMaps );
-        iCallback->HandleChangeL( listOfMaps );
-        CleanupStack::PopAndDestroy( listOfMaps ) ;
-        }
-    else
-        {
-        map->RemoveL( iSqlDb );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::SetCallback()
-//
-// ---------------------------------------------------------------------------
-//  
-void CCpStorageEngine::SetCallback( MCPChangeNotifier* aCallback )
-    {
-    iCallback = aCallback;
-    }
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::DeleteCorruptedDbL()
-//
-// ---------------------------------------------------------------------------
-//  
-void CCpStorageEngine::DeleteCorruptedDbL()
-	{
-	User::LeaveIfError( iSqlDb.Delete( KCPdatabase ) );
-	TInt value( 0 );
-	if( !iRepository->Get( KCPStorageUid, value ) )
-		{
-		value ^= KSQLDBStateNormal;
-		value |= KSQLDBStateRestored;
-		}
-	else
-		{
-		value = KSQLDBStateRestored;
-		}
-	iRepository->Set( KCPStorageUid, value );
-	}
-
-// ---------------------------------------------------------------------------
-// CCpStorageEngine::CreateNewDbL()
-//
-// ---------------------------------------------------------------------------
-//  
-void CCpStorageEngine::CreateNewDbL()
-    {
-    TSecureId id( KServerUid ); // Uid of CP Server - only this process has access rights
-    TSecurityPolicy defaultPolicy;
-    TSecurityPolicy securityPolicy(id);
-    RSqlSecurityPolicy sqlSecurityPolicy;
-    CleanupClosePushL( sqlSecurityPolicy );
-    User::LeaveIfError( sqlSecurityPolicy.Create( defaultPolicy ) );
-    User::LeaveIfError( sqlSecurityPolicy.SetDbPolicy(
-        RSqlSecurityPolicy::ESchemaPolicy, securityPolicy ) );
-#ifdef CONTENT_PUBLISHER_STORAGE_MT
-    iSqlDb.CreateL( KCPpathdatabase, &KMdsSqlDbaConfig );
-#else
-    iSqlDb.CreateL( KCPdatabase, sqlSecurityPolicy, &KMdsSqlDbaConfig );
-#endif        
-    CleanupStack::PopAndDestroy( &sqlSecurityPolicy );
-    CreateTablesL( );
-    
-    TInt value( 0 );
-    if( iRepository->Get( KCPStorageUid, value ) == KErrNotFound )
-		{
-		value = KSQLDBStateNormal;
-		iRepository->Set( KCPStorageUid, value );
-		}
-    }
-