fotaapplication/fotaserver/src/FotaDlMgrClient.cpp
branchRCL_3
changeset 26 19bba8228ff0
parent 25 b183ec05bd8c
child 27 5cc2995847ea
--- a/fotaapplication/fotaserver/src/FotaDlMgrClient.cpp	Tue Aug 31 16:04:06 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1128 +0,0 @@
-/*
- * Copyright (c) 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:   Fota download manager client
- *
- */
-
-//System includes
-#include <sysutil.h> 
-#include <bautils.h>
-#include <cmmanager.h>
-#include <cmconnectionmethod.h>
-#include <devicedialogconsts.h>
-#include <centralrepository.h>
-#include <XQConversions>
-#include <uri8.h> //For parsing uri
-//User includes
-#include "FotaDlMgrClient.h"
-#include "FotaDlClient.h"
-#include "FotaServer.h"
-#include "fotanotifiers.h"
-
-// --------------------------------------------------------------------------
-//  Two phase construction
-// --------------------------------------------------------------------------
-DownloadManagerClient* DownloadManagerClient::NewL(CFotaServer* aServer)
-    {
-    DownloadManagerClient* self = new (ELeave) DownloadManagerClient(aServer);
-    self->ConstructL();
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-//  The constructor
-// --------------------------------------------------------------------------
-DownloadManagerClient::DownloadManagerClient(CFotaServer* aServer) :
-    iDownloadManager(NULL), iDownloadClient(NULL), iFotaServer(aServer),
-            iInitialized(EFalse), iDownloadSubmitted(EFalse), iReservedSize(
-                    5242880), iNotifParams(NULL), iNotifier (NULL)
-    {
-
-    }
-
-// --------------------------------------------------------------------------
-//  The destructor
-// --------------------------------------------------------------------------
-DownloadManagerClient::~DownloadManagerClient()
-    {
-    FLOG(_L("DownloadManagerClient::~DownloadManagerClient >>"));
-
-    if (iDownloadClient)
-        {
-        delete iDownloadClient;
-        iDownloadClient = NULL;
-        }
-
-    UninitDownloadMgr(); //Closes the RFs session and iDownloadManager.
-
-    iFs.Close();
-    
-    	/*
-    if (iNotifParams)
-        {
-        FLOG(_L("DownloadManagerClient::~DownloadManagerClient, iNotifParams >>"));
-        delete iNotifParams;
-        iNotifParams = NULL;
-        FLOG(_L("DownloadManagerClient::~DownloadManagerClient, iNotifParams <<"));
-        }
-    if (iNotifier)
-        {
-        FLOG(_L("DownloadManagerClient::~DownloadManagerClient, iNotifier >>"));
-        delete iNotifier;
-        iNotifier = NULL;
-        FLOG(_L("DownloadManagerClient::~DownloadManagerClient, iNotifier <<"));
-        }*/
-    FLOG(_L("DownloadManagerClient::~DownloadManagerClient <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Two phase construction
-// --------------------------------------------------------------------------
-void DownloadManagerClient::ConstructL()
-    {
-    FLOG(_L("DownloadManagerClient::ConstructL >>"));
-
-    TInt err;
-    CRepository* centrep(NULL);
-
-    TRAP(err, centrep = CRepository::NewL( KCRUidFotaDiskStorage ) );
-    if (centrep)
-        {
-        err = centrep->Get(KFotaDiskSpaceReservationKey, iReservedSize);
-        }
-
-    delete centrep;
-    centrep = NULL;
-
-    __LEAVE_IF_ERROR(iFs.Connect());
-
-    iProgress = EFalse;
-
-    FLOG(_L("DownloadManagerClient::ConstructL, reservation needed is %d <<"),iReservedSize);
-    }
-
-// --------------------------------------------------------------------------
-//  Initializes the download manager for fota requirements
-// --------------------------------------------------------------------------
-int DownloadManagerClient::InitDownloadMgr()
-    {
-    FLOG(_L("DownloadManagerClient::InitDownloadMgr >>"));
-
-    int ret = EOk;
-
-    if (!iInitialized)
-        {
-        iDownloadManager = new DownloadManager("FotaServer"); //Step 0
-        connect(iDownloadManager,
-                SIGNAL(downloadManagerEvent(DownloadManagerEvent *)), this,
-                SLOT(DownloadMgrEventRecieved(DownloadManagerEvent *))); //step 1
-        //Scope as false signifies that the download should happen on fota process
-        bool scope = false;
-        ret = iDownloadManager->initialize(scope); //Step 2
-
-#if defined(__WINS__)
-        iDownloadManager->setProxy("bswebproxy01.americas.nokia.com", 8080); //Step 3/
-#endif
-        //Set the progress mode of download to be non quite
-        ret = iDownloadManager->setAttribute(ProgressMode, NonQuiet);
-        //Set the persistent mode of download to be active.
-        ret = iDownloadManager->setAttribute(PersistantMode, Active);
-        //Set the default destination path for all the downloads
-        ret = iDownloadManager->setAttribute(DefaultDestinationPath, DefaultPath);
-
-        if (iFotaServer->iPackageState.iIapId > 0)
-            {
-            QString name;
-            TRAPD(err, name = GetIapNameWithIdL(iFotaServer->iPackageState.iIapId));
-            HBufC* temp = XQConversions::qStringToS60Desc(name);
-            FLOG(_L("IAP name for ID %d is %S, err = %d"), iFotaServer->iPackageState.iIapId, temp, err);
-            delete temp;
-#if defined(__WINS__)
-
-#else
-            if (err == KErrNone)
-                {
-                FLOG(_L("Setting IAP =int for the single download"), iFotaServer->iPackageState.iIapId);
-                ret = iDownloadManager->setAttribute(AccessPoint, name);
-                }
-#endif  
-            }
-
-        iInitialized = ETrue;
-        }
-
-    FLOG(_L("DownloadManagerClient::InitDownloadMgr, ret = %d <<"), ret);
-    return ret;
-    }
-
-// --------------------------------------------------------------------------
-//  Uninitializes the download manager
-// --------------------------------------------------------------------------
-void DownloadManagerClient::UninitDownloadMgr()
-    {
-    FLOG(_L("DownloadManagerClient::UninitDownloadMgr >>"));
-
-    if (iDownloadManager)
-        {
-        disconnect(iDownloadManager,
-                SIGNAL(downloadManagerEvent(DownloadManagerEvent *)), this,
-                SLOT(DownloadMgrEventRecieved(DownloadManagerEvent *)));
-
-        iDownloadManager->deleteLater();
-        iDownloadManager = NULL;
-        }
-    iInitialized = EFalse;
-
-    FLOG(_L("DownloadManagerClient::UninitDownloadMgr <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Gets the access point name for a given access point id.
-// --------------------------------------------------------------------------
-QString DownloadManagerClient::GetIapNameWithIdL(TInt aIapId)
-    {
-    FLOG(_L("DownloadManagerClient::GetIapNameWithIdL, iapid = %d"), aIapId);
-    
-    QString name(NULL);
-
-    RCmManager cmManager;
-    cmManager.OpenL();
-
-    RCmConnectionMethod conn;
-    conn = cmManager.ConnectionMethodL(aIapId);
-
-    HBufC* temp = conn.GetStringAttributeL(CMManager::ECmName);
-    name = QString::fromUtf16(temp->Ptr(), temp->Length());
-    delete temp;
-    temp = NULL;
-
-    conn.Close();
-
-    cmManager.Close();
-    FLOG(_L("DownloadManagerClient::GetIapNameWithIdL <<"));
-    return name;
-    }
-
-// --------------------------------------------------------------------------
-//  Starts the download using a given url
-// --------------------------------------------------------------------------
-void DownloadManagerClient::DownloadL(const TDesC8& url)
-    {
-    FLOG(_L("DownloadManagerClient::Download >>"));
-
-    iDownloadSubmitted = EFalse;
-    iProgress = EFalse;
-    //Validate url...
-    
-    TUriParser8 parser;
-
-    if (parser.Parse(url) && !parser.IsSchemeValid())
-        {
-        FLOG(_L("URL is malformed.. finalizing download"));
-        iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadFailed;
-        iFotaServer->iPackageState.iResult= RFotaEngineSession::EResMalformedOrBadURL;
-        iFotaServer->iDatabase->OpenDBL();
-        iFotaServer->iDatabase->SetStateL(iFotaServer->iPackageState, KNullDesC8, EFDBState | EFDBResult);
-        iFotaServer->iDatabase->CloseAndCommitDB();
-
-        iFotaServer->FinalizeDownloadL();
-        TRAP_IGNORE(ShowDialogL(EFwDLNonResumableFailure));
-        return;
-        }
-    
-    FLOG(_L("DownloadManagerClient::DownloadL, State 2 - init download manager"));
-    InitDownloadMgr();
-
-    //Remove any existing download for this client
-    iDownloadManager->removeAll();
-
-    DeleteUpdatePackageL();
-
-    DownloadType type = Parallel;
-
-    if (!iDownloadClient)
-        {
-        iDownloadClient = new DownloadClient(this);
-        }
-
-    FLOG(_L("DownloadManagerClient::DownloadL, State 3 - creating download"));
-
-    QString temp = QString::fromUtf8(
-            reinterpret_cast<const char*> (url.Ptr()), url.Length());
-    int err (0);
-    if ((err = iDownloadClient->CreateDownload(temp, type)) != 0)
-        {
-        FLOG(_L("Error in creating download"), err);
-        }
-    else if ((err = iDownloadClient->SetDownloadAttributes()) != 0)
-        {
-        FLOG(_L("Error in setting attributes for download: %d"), err);
-        }
-    else 
-        {
-        iFotaServer->iPackageState.iState  = RFotaEngineSession::EStartingDownload;
-        iFotaServer->iPackageState.iResult = KErrNotFound;
-        iFotaServer->iDatabase->OpenDBL();
-        iFotaServer->iDatabase->SetStateL(iFotaServer->iPackageState, KNullDesC8, EFDBState | EFDBResult);
-        iFotaServer->iDatabase->CloseAndCommitDB();
-        iDownloadSubmitted = ETrue;
-        iFotaServer->SetStartupReason(EFotaDownloadInterrupted);
-        
-        iDownloadClient->Start();
-        FLOG(_L("Download is submitted successfully"));
-        }
-
-    if (err == ENotOk)
-        {
-        iFotaServer->iDatabase->OpenDBL();
-        iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadFailed;
-        iFotaServer->iPackageState.iResult = RFotaEngineSession::EResUndefinedError;
-
-        iFotaServer->iDatabase->SetStateL(iFotaServer->iPackageState,  KNullDesC8, EFDBState | EFDBResult);
-        iFotaServer->iDatabase->CloseAndCommitDB();
-
-        iFotaServer->FinalizeDownloadL();
-        TRAP_IGNORE(ShowDialogL(EFwDLNonResumableFailure));
-        }
-
-    FLOG(_L("DownloadManagerClient::Download <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Pauses an ongoing download.
-// --------------------------------------------------------------------------
-void DownloadManagerClient::PauseDownloadL()
-    {
-    FLOG(_L("DownloadManagerClient::PauseDownloadL >>"));
-
-    TInt ret(ENotOk);
-
-    if (iDownloadClient)
-        {
-        ret = iDownloadClient->Pause(UserCancelled);
-        
-        __LEAVE_IF_ERROR(ret);
-        }
-
-    FLOG(_L("DownloadManagerClient::PauseDownloadL <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Tries to resume a suspended download
-// --------------------------------------------------------------------------
-void DownloadManagerClient::TryResumeDownloadL()
-    {
-    FLOG(_L("DownloadManagerClient::TryResumeDownloadL >>"));
-
-    TInt ret(ENotOk);
-
-    FLOG(_L("DownloadManagerClient::TryResumeDownloadL, State 1 - init download manager"));
-
-    __LEAVE_IF_ERROR(InitDownloadMgr());
-
-    iDownloadSubmitted = ETrue;
-    iProgress = EFalse;
-
-    if (!iDownloadClient)
-        {
-        iDownloadClient = new DownloadClient(this);
-        }
-
-    iFotaServer->SetStartupReason(EFotaDownloadInterrupted);
-    ret = iDownloadClient->Resume();
-    
-    if (ret == ENotOk )
-        {
-        if (iFotaServer->DecrementDownloadRestartCount())
-            {
-            FLOG(_L("There is no paused download! Hence restarting download..."));
-            DownloadL(iFotaServer->iLastFwUrl);
-            }
-        else
-            {
-            FLOG(_L("There is no paused download! Restart exhausted and hence finalizing download..."));
-            iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadFailed;
-            
-            if (iFotaServer->iPackageState.iResult == -1 )
-                iFotaServer->iPackageState.iResult = RFotaEngineSession::EResUndefinedError;
-            
-            iDownloadSubmitted = EFalse;
-            iFotaServer->FinalizeDownloadL();
-            TRAP_IGNORE(ShowDialogL(EFwDLNonResumableFailure));
-            }
-        }
-    FLOG(_L("DownloadManagerClient::TryResumeDownloadL, ret = %d <<"), ret);
-    }
-
-// --------------------------------------------------------------------------
-//  The slot which gets all the download manager events.
-// --------------------------------------------------------------------------
-bool DownloadManagerClient::DownloadMgrEventRecieved(
-        DownloadManagerEvent *event)
-    {
-    FLOG(_L("DownloadManagerClient::event >>"));
-
-    DownloadManagerEvent::Event type = (DownloadManagerEvent::Event) event->type();
-    TBool ret(EFalse);
-
-    FLOG(_L("Download Manager Event Type: %d"), type);
-    switch (type)
-        {
-        case DownloadManagerEvent::Created:
-            {
-            FLOG(_L("Download is created..."));
-            ret = ETrue;
-            break;
-            }
-        case DownloadManagerEvent::Removed:
-            {
-            FLOG(_L("Download is cleared..."));
-            ret = ETrue;
-            break;
-            }
-        }
-
-    FLOG(_L("DownloadManagerClient::event, ret = %d <<"), ret);
-    return ret;
-    }
-
-// --------------------------------------------------------------------------
-//  Called by the download client when the single download begins.
-// --------------------------------------------------------------------------
-void DownloadManagerClient::StartDownloadProgress(QString name,
-        QString version, int size)
-    {
-
-    HBufC8* temp1 = XQConversions::qStringToS60Desc8(name);
-    HBufC8* temp2 = XQConversions::qStringToS60Desc8(version);
-    iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadProgressing;
-    iFotaServer->iPackageState.iPkgSize = size;
-
-    if (temp1->Length() <= iFotaServer->iPackageState.iPkgName.MaxLength())
-        iFotaServer->iPackageState.iPkgName.Copy(temp1->Des());
-
-    if (temp2->Length() <= iFotaServer->iPackageState.iPkgVersion.MaxLength())
-        iFotaServer->iPackageState.iPkgVersion.Copy(temp2->Des());
-    delete temp1;
-    delete temp2;
-    TRAP_IGNORE(
-            iFotaServer->iDatabase->OpenDBL();
-            iFotaServer->iDatabase->SetStateL( iFotaServer->iPackageState, KNullDesC8, EFDBPkgName|EFDBVersion|EFDBPkgSize|EFDBState);
-            iFotaServer->iDatabase->CloseAndCommitDB();
-            );
-
-    if (!iFotaServer->iPackageState.iSessionType)
-        {
-        iFotaServer->StartDownloadDialog(name, version, size);
-        iFotaServer->ConstructApplicationUI(ETrue);
-        }
-    }
-
-// --------------------------------------------------------------------------
-//  Called by the download client to update the progress of download.
-// --------------------------------------------------------------------------
-void DownloadManagerClient::UpdateDownloadProgress(int progress)
-    {
-    FLOG(_L("DownloadManagerClient::UpdateDownloadProgress, progress = %d >>"),
-            progress );
-
-    iProgress = ETrue;
-    
-    if (!iFotaServer->iPackageState.iSessionType)
-        {
-        iFotaServer->UpdateDownloadDialog(progress);
-        }
-
-    FLOG(_L("DownloadManagerClient::UpdateDownloadProgress <<"));
-
-    }
-
-// --------------------------------------------------------------------------
-//  Called by the download client when the download is complete, either successfully or unsuccessfully.
-// --------------------------------------------------------------------------
-void DownloadManagerClient::HandleDownloadEvent(Download::State dlstate,
-        int err0)
-    {
-    FLOG(_L("DownloadManagerClient::HandleDownloadEvent, status = %d >>"),  dlstate);
-
-    iDownloadSubmitted = EFalse;
-    iProgress = EFalse;
-    TInt notetype(-1);
-
-    if (iDownloadClient)
-        {
-        delete iDownloadClient;
-        iDownloadClient = NULL;
-        }
-
-    if (dlstate == Download::Completed)
-        {
-        iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadComplete;
-        iFotaServer->iPackageState.iResult = -1;
-        }
-    else if (dlstate == Download::Paused)
-        {
-        iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadProgressing;
-
-        MapDownloadErrors(err0);
-        }
-    else if (dlstate == Download::Failed)
-        {
-        iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadFailed;
-
-        MapDownloadErrors(err0);
-
-        if(iFotaServer->iPackageState.iResult == RFotaEngineSession::EResDLFailDueToDeviceOOM
-           || iFotaServer->iPackageState.iResult == RFotaEngineSession::EResDLFailDueToNWIssues)
-            {
-            iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadProgressing;
-            }
-        }
-    else if (dlstate == Download::Cancelled)
-        {
-        iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadProgressing;
-
-        MapDownloadErrors(err0);
-        }
-    else if (dlstate == Download::Paused)
-        {
-        iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadProgressing;
-
-        MapDownloadErrors(err0);
-        }
-    else
-        {
-        FLOG(_L(" I DO NOT KNOW THIS DLSTATE!!"));
-        }
-    TRAPD(err,
-            iFotaServer->iDatabase->OpenDBL();
-            iFotaServer->iDatabase->SetStateL( iFotaServer->iPackageState, KNullDesC8, EFDBState|EFDBResult);
-            iFotaServer->iDatabase->CloseAndCommitDB();
-    );
-    FLOG(_L("Updating fota database, error = %d"), err);
-
-    UninitDownloadMgr();
-
-    if (iFotaServer->iPackageState.iState == RFotaEngineSession::EDownloadComplete
-            && iFotaServer->iPackageState.iUpdateLtr)
-        {
-        iFotaServer->SetStartupReason(EFotaUpdateInterrupted);
-        }
-
-    if (iFotaServer->iPackageState.iResult
-            == RFotaEngineSession::EResDLFailDueToNWIssues)
-        {
-        notetype = EFwDLConnectionFailure;
-        }
-    else if (iFotaServer->iPackageState.iState == RFotaEngineSession::EDownloadProgressing &&
-            iFotaServer->iPackageState.iResult == RFotaEngineSession::EResUndefinedError)
-        {
-        notetype = EFwDLGeneralFailure;
-        }
-    else if (iFotaServer->iPackageState.iResult == RFotaEngineSession::EResFailedSignatureAuthentication
-            || iFotaServer->iPackageState.iResult == RFotaEngineSession::EResMalformedOrBadURL
-            || iFotaServer->iPackageState.iResult == RFotaEngineSession::EResAlternateDLServerUnavailable
-            || iFotaServer->iPackageState.iResult == RFotaEngineSession::EResInvalidDownloadDescriptor
-            || iFotaServer->iPackageState.iResult == RFotaEngineSession::EResUndefinedError)
-        {
-        notetype = EFwDLNonResumableFailure;
-        }
-
-    TRAP(err, iFotaServer->FinalizeDownloadL());
-
-    FLOG(_L("Finalized download, error = %d"), err);
-
-    if (notetype != -1)
-        {
-        TRAP_IGNORE(ShowDialogL((TFwUpdNoteTypes) notetype));
-        }
-
-    FLOG(_L("DownloadManagerClient::HandleDownloadEvent <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Called by the download client when download is interrupted by fota.
-// --------------------------------------------------------------------------
-void DownloadManagerClient::HandleClientInterrupt(Download::State dlstate,
-        int err0)
-    {
-    FLOG(_L("DownloadManagerClient::HandleClientInterrupt, status = %d >>"),
-            dlstate);
-
-    iDownloadSubmitted = EFalse;
-    iProgress = EFalse;
-    TInt notetype(-1);
-
-    if (iDownloadClient)
-        {
-        delete iDownloadClient;
-        iDownloadClient = NULL;
-        }
-
-    if (dlstate == Download::Cancelled || dlstate == Download::Failed)
-        {
-        if (err0 == UserCancelled)
-            {
-            iFotaServer->iPackageState.iState  = RFotaEngineSession::EDownloadFailed;
-            iFotaServer->iPackageState.iResult = RFotaEngineSession::EResUserCancelled;
-            notetype = EFwDLNonResumableFailure;
-            }
-        else if (err0 == NeedMoreMemory)
-            {
-            iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadProgressing;
-            iFotaServer->iPackageState.iResult= RFotaEngineSession::EResUserCancelled;
-            }
-        else if (err0 == InvalidContentType)
-            {
-            iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadFailed;
-            iFotaServer->iPackageState.iResult= RFotaEngineSession::EResContentMisMatch;
-            notetype = EFwDLNonResumableFailure;
-            }
-        }
-    else if (dlstate == Download::Paused)
-        {
-        if (err0 == UserCancelled)
-            {
-            iFotaServer->iPackageState.iState = RFotaEngineSession::EDownloadProgressing;
-            iFotaServer->iPackageState.iResult= RFotaEngineSession::EResUserCancelled;
-            
-            iFotaServer->ServerCanShut(ETrue);
-            }
-        }
-    else
-        {
-        FLOG(_L(" I DO NOT KNOW THIS!!"));
-        }
-    TRAPD(err,
-            iFotaServer->iDatabase->OpenDBL();
-            iFotaServer->iDatabase->SetStateL( iFotaServer->iPackageState, KNullDesC8, EFDBState|EFDBResult);
-            iFotaServer->iDatabase->CloseAndCommitDB();
-    );
-    FLOG(_L("Updating fota database, error = %d"), err);
-
-    UninitDownloadMgr();
-
-    TRAP(err, iFotaServer->FinalizeDownloadL());
-
-    FLOG(_L("Finalizing download, error = %d"), err);
-
-    if (notetype != -1)
-        {
-        TRAP_IGNORE(ShowDialogL((TFwUpdNoteTypes) notetype));
-        }
-
-    FLOG(_L("DownloadManagerClient::HandleClientInterrupt <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Called to map the download error codes to fota result codes (FUMO result codes)
-// --------------------------------------------------------------------------
-void DownloadManagerClient::MapDownloadErrors(int err0)
-    {
-    FLOG(_L("DownloadManagerClient::MapDownloadErrors, err =  %d >>"), err0);
-
-    if (err0 >= ConnectionRefusedError && err0 <= UnknownNetworkError)
-        {
-        //Connection related error
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResAlternateDLServerUnavailable;
-        }
-    else if (err0 == ContentNotFoundError)
-        {
-        iFotaServer->iPackageState.iResult
-                    = RFotaEngineSession::EResAlternateDLServerUnavailable;
-        }
-    else if (err0 >= ContentAccessDenied && err0 <= UnknownContentError)
-        {
-        //Content related error
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResUndefinedError;
-        }
-    else if (err0 >= ProtocolUnknownError && err0 <= ProtocolFailure)
-        {
-        //Protocol related error
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResUndefinedError;
-        }
-    else if (err0 >= ConnectionFailed && err0 <= TransactionFailed)
-        {
-        //No network coverage
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResDLFailDueToNWIssues;
-        }
-    else if (err0 >= HttpRestartFailed && err0 <= ContentExpired)
-        {
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResUndefinedError;
-        }
-    else if (err0 == ObjectNotFound)
-        {
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResAlternateDLServerUnavailable;
-        }
-    else if (err0 == BadUrl)
-        {
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResMalformedOrBadURL;
-        }
-    else if (err0 == MediaRemoved)
-        {
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResDLFailDueToDeviceOOM;
-        }
-    else if (err0 == DiskFull)
-        {
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResDLFailDueToDeviceOOM;
-        }
-    else if (err0 == InvalidDownloadDescriptor)
-        {
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResInvalidDownloadDescriptor;
-        }
-    else
-        {
-        //Unknown failure reason
-        iFotaServer->iPackageState.iResult
-                = RFotaEngineSession::EResUndefinedError;
-        }
-    FLOG(_L("DownloadManagerClient::MapDownloadErrors, mapped fota failure reason = %d"), iFotaServer->iPackageState.iResult);
-    }
-
-// --------------------------------------------------------------------------
-//  Tells whether any download is active or not.
-// --------------------------------------------------------------------------
-TBool DownloadManagerClient::IsDownloadActive()
-    {
-    return (iDownloadSubmitted || iProgress);
-    }
-
-// --------------------------------------------------------------------------
-//  Returns the download manager instance pointer
-// --------------------------------------------------------------------------
-DownloadManager* DownloadManagerClient::Manager()
-    {
-    return iDownloadManager;
-    }
-
-// --------------------------------------------------------------------------
-//  Finds the suitable drive and folder for a download, given its size.
-// --------------------------------------------------------------------------
-TFreeSpace DownloadManagerClient::GetSuitablePath(TInt aSize, QString& aPath)
-    {
-    TFreeSpace isavailable;
-    TInt swupdSize(0);
-    TInt dummySize(0);
-
-    SpaceAllocatedBySWUPDFiles(swupdSize, dummySize);
-
-    if (aSize <= dummySize)
-        {
-        // fits to reservation
-        isavailable = EFitsToReservation;
-        }
-    else
-        {
-        // doesnt fit to reservation, does it fit to filesystem?
-        TInt sizeNeededFromFS = aSize - dummySize;
-
-        if (sizeNeededFromFS < 0)
-            sizeNeededFromFS = 0;
-        TBool critical(ETrue);
-        TRAP_IGNORE(critical = SysUtil::FFSSpaceBelowCriticalLevelL( &iFs, sizeNeededFromFS ));
-
-        if (critical)
-            {
-            // how much space would be needed
-            TVolumeInfo vi;
-            iFs.Volume(vi, EDriveC);
-
-            TInt neededspace = sizeNeededFromFS - vi.iFree
-                    + KSystemCriticalWorkingspace;
-            FLOG(_L("neededspace = %d vi.iFree = %d "), neededspace, vi.iFree);
-            FLOG(_L(" neededspace = sizeNeededFromFS - vi.iFree + KSystemCriticalWorkingspace;"));
-
-            aSize = neededspace;
-            isavailable = EDoesntFitToFileSystem;
-            }
-        else
-            {
-            isavailable = EFitsToFileSystem;
-            }
-
-        }
-    aPath = DefaultPath;
-
-    FLOG(_L("DownloadManagerClient::IsPackageStoreSizeAvailableL, isavailable = %d <<"), isavailable);
-
-    return isavailable;
-    }
-
-// ---------------------------------------------------------------------------
-// DownloadManagerClient::GetUpdatePackageLocation
-// Gets update package location, that is , path.
-// ---------------------------------------------------------------------------
-void DownloadManagerClient::GetUpdatePackageLocation(TDes& aPath)
-    {
-    FLOG(_L("DownloadManagerClient::GetUpdatePackageLocation >>"));
-
-    TBuf<KMaxFileName> temp;
-    temp.Zero();
-    temp.Copy(KDefaultPath);
-
-    aPath.Zero();
-
-    if (iFotaServer->iPackageState.iState == RFotaEngineSession::EDownloadProgressing
-            || iFotaServer->iPackageState.iState == RFotaEngineSession::EDownloadFailed)
-        temp.Append(KDownloadTempDir);
-
-    TPtrC name(reinterpret_cast<const unsigned short*> (PackageName.constData()));
-
-    temp.Append(name);
-
-    if (BaflUtils::FileExists(iFs, temp))
-        aPath.Copy(temp);
-
-    FLOG(_L("DownloadManagerClient::GetUpdatePackageLocation <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Gets the download package size
-// --------------------------------------------------------------------------
-TInt DownloadManagerClient::GetDownloadPackageSize()
-    {
-    FLOG(_L("DownloadManagerClient::GetDownloadPackageSize >>"));
-
-    TInt size(0);
-    TBuf<KMaxFileName> temp;
-    temp.Zero();
-    temp.Copy(KDefaultPath);
-
-    if (iFotaServer->iPackageState.iState
-            == RFotaEngineSession::EDownloadProgressing)
-        temp.Append(KDownloadTempDir);
-
-    TPtrC  name(reinterpret_cast<const unsigned short*> (PackageName.constData()));
-
-    temp.Append(name);
-
-    TEntry entry;
-    if (iFs.Entry(temp, entry) == KErrNone)
-        size = entry.iSize;
-
-    FLOG(_L("DownloadManagerClient::GetDownloadPackageSize, size = %d >>"),
-            size);
-    return size;
-    }
-
-// --------------------------------------------------------------------------
-//  Gets the space allocated for the package and reserved memory 
-// --------------------------------------------------------------------------
-void DownloadManagerClient::SpaceAllocatedBySWUPDFiles(TInt& aSwupdSize,
-        TInt& aReservedSize)
-    {
-    // get sizes of swupd files
-    aSwupdSize = GetDownloadPackageSize();
-
-    // get size of reserved file
-    aReservedSize = 0;
-    TBuf<KMaxFileName> temp;
-    temp.Zero();
-    temp.Copy(KDefaultPath);
-    temp.Append(KReservedFileName);
-
-    TEntry entry;
-    if (iFs.Entry(temp, entry) == KErrNone)
-        aReservedSize = entry.iSize;
-
-    FLOG(_L("CFotaDiskStorage::SpaceAllocatedBySWUPDFilesL reserved:%d swupd:%d"), aReservedSize, aSwupdSize);
-    }
-
-// --------------------------------------------------------------------------
-//  Creates the disk reservation
-// --------------------------------------------------------------------------
-void DownloadManagerClient::CreateDiskReservation()
-    {
-    FLOG(_L("DownloadManagerClient::CreateDiskReservationL >>"));
-
-    // Count size reserved by .swupd files
-    // CDir*       list;
-    TInt err;
-    TInt swupdSize(0);
-    TInt dummySize(0);
-    RFile dummy;
-
-    SpaceAllocatedBySWUPDFiles(swupdSize, dummySize);
-
-    // Calculate space for dummy file
-    TInt targetsize = iReservedSize - swupdSize;
-    if (targetsize < 0)
-        {
-        targetsize = 0;
-        }
-
-    // Reduce dummy file size 
-    if (dummySize != targetsize || dummySize == 0)
-        {
-        FLOG(_L("   dummy new size %d (old %d)"), targetsize, dummySize);
-
-        err = dummy.Open(iFs, KReservedFileName, EFileWrite
-                | EFileShareExclusive);
-
-        if (err == KErrNotFound)
-            {
-            dummy.Replace(iFs, KReservedFileName, EFileWrite
-                    | EFileShareExclusive);
-            }
-
-        TInt err = KErrNone;
-        //Reservation logic - if 'x' bytes is not available, try x/2 to reserve. 
-        //Trial would end if unable to save atleast 1MB.
-
-        do {
-            FLOG(_L("Trying to reserve size: %d bytes..."), targetsize);
-            err = dummy.SetSize(targetsize);
-            if (err != KErrNoMemory)
-                break;
-            targetsize = targetsize / 2;
-
-            if (targetsize < 1024 * 1024) //Don't reserver anything lesser than 1MB
-                break;
-            }
-        while (err == KErrNoMemory);
-        dummy.Close();
-
-        if (err == KErrNone)
-            {
-            FLOG(_L("Successfully created reservation of size: %d bytes"),
-                    targetsize);
-            }
-        else
-            {
-            FLOG(_L("Error %d while creating reserved of size:  %d bytes"),
-                    err, targetsize);
-            }
-        }
-
-    FLOG(_L("DownloadManagerClient::CreateDiskReservationL <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Deletes the disk reservation in the specified path
-// --------------------------------------------------------------------------
-void DownloadManagerClient::DeleteDiskReservation(QString& path)
-    {
-    FLOG(_L("DownloadManagerClient::DeleteDiskReservation >>"));
-
-    RFile file;
-    TBuf<KMaxFileName> temp;
-    temp.Zero();
-
-    TPtrC spath(reinterpret_cast<const unsigned short*> (path.constData()));
-    temp.Copy(spath);
-    temp.Append(KReservedFileName);
-
-    TInt err = file.Open(iFs, temp, EFileWrite | EFileShareExclusive);
-
-    if (!err)
-        {
-        FLOG(_L("Removing the reserved memory as download has started"),
-                iReservedSize);
-        file.SetSize(KErrNone);
-        }
-
-    file.Close();
-
-    FLOG(_L("DownloadManagerClient::DeleteDiskReservation <<"));
-    }
-
-// ---------------------------------------------------------------------------
-// DownloadManagerClient::DeleteUpdatePackageL 
-// ---------------------------------------------------------------------------
-void DownloadManagerClient::DeleteUpdatePackageL()
-    {
-    FLOG(_L("DownloadManagerClient::DeleteUpdatePackageL >>"));
-
-    CDir*       list;
-   
-    // get sizes of swupd files
-    TInt err = iFs.GetDir (KPackageExtensionAll, KEntryAttNormal ,ESortByName, list );
-    if (err == KErrNone)
-        {
-        CleanupStack::PushL ( list );
-
-        for(int i=0; i<list->Count() ;++i )
-            {
-            TEntry t = (*list)[i];
-            iFs.Delete(t.iName);
-            FLOG(_L("Deleted: %S"), &t.iName);
-            }
-
-        CleanupStack::PopAndDestroy( list );        
-        }
-    
-    TBuf<KMaxFileName> temp;
-    temp.Copy(KDefaultPath);
-    temp.Append(KDownloadTempDir);
-    temp.Append(KPackageExtensionAll);
-    
-    err = iFs.GetDir (temp, KEntryAttNormal ,ESortByName, list );
-    
-    if (err == KErrNone)
-        {
-        CleanupStack::PushL ( list );
-        TBuf<KMaxFileName> temp;
-
-        for(int i=0; i<list->Count() ;++i )
-            {
-            TEntry t = (*list)[i];
-            temp.Copy(KDefaultPath);
-            temp.Append(KDownloadTempDir);
-            temp.Append(t.iName);
-            iFs.Delete(temp);
-            FLOG(_L("Deleted: %S"), &temp);
-            }
-        
-        CleanupStack::PopAndDestroy( list );
-        }
-    
-    CreateDiskReservation();
-
-    FLOG(_L("DownloadManagerClient::DeleteUpdatePackageL<<"));
-    }
-
-// --------------------------------------------------------------------------
-//  Called to show any update specific dialogs
-// --------------------------------------------------------------------------
-void DownloadManagerClient::ShowDialogL(TFwUpdNoteTypes adialogid,
-        TInt aValue)
-    {
-    FLOG(_L("DownloadManagerClient::ShowDialog, dialogid = %d >>"), adialogid);
-    iFotaServer->ServerCanShut(EFalse);
-    if (iFotaServer->FullScreenDialog())
-        iFotaServer->FullScreenDialog()->Close();
-
-    if (iFotaServer->iPackageState.iSessionType && adialogid
-            != EFwDLNeedMoreMemory)
-        {
-        FLOG(_L("Differing showing dialog as session is silent."));
-        return;
-        }
-
-    iNotifParams = CHbSymbianVariantMap::NewL();
-
-    HBufC* keyDialog = HBufC::NewL(10);
-    CleanupStack::PushL(keyDialog);
-    *keyDialog = KKeyDialog;
-
-    HBufC* keyParam1 = HBufC::NewL(10);
-    CleanupStack::PushL(keyParam1);
-    *keyParam1 = KKeyParam1;
-
-    HBufC* keyParam2 = HBufC::NewL(10);
-    CleanupStack::PushL(keyParam2);
-    *keyParam2 = KKeyParam2;
-
-    HBufC* keyParam3 = HBufC::NewL(10);
-    CleanupStack::PushL(keyParam3);
-    *keyParam3 = KKeyParam3;
-
-    //adialogid = EFwUpdResumeUpdate;
-    CHbSymbianVariant* dialogId = CHbSymbianVariant::NewL(&adialogid,
-            CHbSymbianVariant::EInt);
-    CleanupStack::PushL(dialogId);
-    iNotifParams->Add(*keyDialog, dialogId);
-    iNotifier = CFotaDownloadNotifHandler::NewL(this);
-
-    switch (adialogid)
-        {
-        case EFwDLNeedMoreMemory: //For Flexible memory
-            {
-            //TFwUpdNoteTypes aType = EFwDLNeedMoreMemory;
-            CHbSymbianVariant* param1Val = CHbSymbianVariant::NewL(&aValue,
-                    CHbSymbianVariant::EInt);
-
-            iNotifParams->Add(*keyParam1, param1Val);
-            iNotifier->LaunchNotifierL(iNotifParams, adialogid);
-            }
-            break;
-        case EFwDLConnectionFailure:
-            {
-            iNotifier->LaunchNotifierL(iNotifParams, adialogid);
-            }
-            break;
-        case EFwDLGeneralFailure:
-            {
-            iNotifier->LaunchNotifierL(iNotifParams, adialogid);
-            }
-            break;
-        case EFwDLNonResumableFailure:
-             {
-             iNotifier->LaunchNotifierL(iNotifParams, adialogid);
-             }
-            break;
-        default:
-            {
-
-            }
-            break;
-        }
-    CleanupStack::PopAndDestroy(5);
-
-    FLOG(_L("DownloadManagerClient::ShowDialog <<"));
-    }
-
-// --------------------------------------------------------------------------
-//  The call back when update specific dialog receives an user response
-// --------------------------------------------------------------------------
-void DownloadManagerClient::HandleDialogResponse(int response, TInt aDialogId)
-    {
-
-    FLOG(_L("DownloadManagerClient::HandleDialogResponse, response = %d, aDialogid = %d >>"), response, aDialogId);
-    //TInt dialogID;
-    //const CHbSymbianVariant* dialogId = iNotifParams->Get(KKeyDialog);
-    //dialogID = *(TFwUpdNoteTypes *)dialogId->Value<TInt>();
-
-    switch (aDialogId)
-        {
-        case EFwDLNeedMoreMemory: //For Flexible memory
-            {
-            if (response == EHbLSK) //LSK
-                {
-                iDownloadClient->Restart();
-                }
-            else //End key
-                {
-                iDownloadClient->Cancel(NeedMoreMemory);
-                }
-            }
-            break;
-        case EFwDLConnectionFailure:
-        case EFwDLGeneralFailure:
-        case EFwDLNonResumableFailure:
-            {
-            iFotaServer->ServerCanShut(ETrue);
-            }
-            break;
-        default:
-            {
-            iFotaServer->ServerCanShut(ETrue);
-            }
-            break;
-        }
-
-    FLOG(_L("DownloadManagerClient::HandleDialogResponse <<\n"));
-    }
-
-//End of file