diff -r 000000000000 -r 3ce708148e4d applicationmanagement/server/src/AMDownload.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applicationmanagement/server/src/AMDownload.cpp Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2002-2004 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 applicationmanagement components + * + */ + +// INCLUDE FILES +#include "AMDownload.h" +#include "AMDownloader.h" +#include "AMDeploymentComponent.h" +#include "debug.h" + +using namespace NApplicationManagement; + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CAMDownload::CAMDownload +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CAMDownload::CAMDownload(CDeploymentComponent *aComponent) : + iComponent(aComponent) + { + } + +// ----------------------------------------------------------------------------- +// CAMDownload::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CAMDownload::ConstructL(RHttpDownload& aDownload) + { + iDownloader = CAMDownloader::NewL(aDownload, *this); + } + +// ----------------------------------------------------------------------------- +// CAMDownload::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CAMDownload* CAMDownload::NewL(RHttpDownload& aDownload, + CDeploymentComponent *aComponent) + { + CAMDownload* self = new( ELeave ) CAMDownload( aComponent ); + + CleanupStack::PushL(self); + self->ConstructL(aDownload); + CleanupStack::Pop(); + + return self; + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +CAMDownload::~CAMDownload() + { + RDEBUG_3( "CAMDownload::~CAMDownload 0x%X - 0x%X", reinterpret_cast( this ), + reinterpret_cast(this)+sizeof( CAMDownload ) ); + + delete iDownloader; + } + +// --------------------------------------------------------------------------- +// DownloadCompleted +// --------------------------------------------------------------------------- +void CAMDownload::DownloadCompleted() + { + RDEBUG( "CAMDownload::DownloadCompleted: start"); + + TInt err(KErrNone); + TRAP( err, iComponent->SuccessStatusUpdateL( iDownloader->FileName(), iDownloader->MimeType() ) ); + if (err != KErrNone) + { + RDEBUG_2(" ->iComponent::StatusUpdateL: %d", err ); + } + RDEBUG_2( "CAMDownload::DownloadCompleted: end Download delete ERROR (%d)", err ); + } + +// --------------------------------------------------------------------------- +// DownloadFailed +// +// EDlAttrStatusCode = 500,// Status code from response header (TInt32 - read-only) +// EDlAttrErrorId, // See THttpDownloadMgrError (TInt32 - read-only) +// EDlAttrGlobalErrorId, // Global error id (TInt32 - read-only) +// EDlAttrContentType, // Content type from response header +// (String8 - read/write. Write is accepted only if EDlAttrContinue is ETrue) +// --------------------------------------------------------------------------- +void CAMDownload::DownloadFailedL(THttpDownloadState aDownloadState) + { + RDEBUG( "CAMDownload::DownloadFailed: start"); + TInt err(KErrNone); + TInt32 errorCode = iDownloader->DownloadStatusCodeL(aDownloadState); + TRAP( err, iComponent->StatusUpdateL( errorCode ) ); + + if (err != KErrNone) + { + RDEBUG_2(" ->iComponent::StatusUpdateL: %d", err ); + } + RDEBUG_2( "CAMDownload::DownloadFailed: end Download delete ERROR (%d)", err ); + } + +void CAMDownload::SetStatus(TInt aStatus) + { + TRAPD( err, iComponent->StatusUpdateL( aStatus ) ) + ; + if (err != KErrNone) + { + RDEBUG_2(" ->iComponent::StatusUpdateL: %d", err ); + } + RDEBUG_2( "CAMDownload::DownloadFailed: end Download delete ERROR (%d)", err ); + } + +// --------------------------------------------------------------------------- +// DownloadErrorCodeL +// +// EDlAttrStatusCode = 500,// Status code from response header (TInt32 - read-only) +// EDlAttrErrorId, // See THttpDownloadMgrError (TInt32 - read-only) +// EDlAttrGlobalErrorId, // Global error id (TInt32 - read-only) +// EDlAttrContentType, // Content type from response header +// (String8 - read/write. Write is accepted only if EDlAttrContinue is ETrue) +// --------------------------------------------------------------------------- +/*TInt32 CAMDownload::DownloadErrorCodeL() + { + return iDownloader->DownloadStatusCodeL(); + }*/ + +// --------------------------------------------------------------------------- +// ContinueDownload +// --------------------------------------------------------------------------- +TInt CAMDownload::ContinueDownload() + { + RDEBUG("CAMDownload::ContinueDownload"); + TInt result(KErrNone); + result = iDownloader->ContinueDownload(); + return result; + } + +// --------------------------------------------------------------------------- +// StartDownload +// --------------------------------------------------------------------------- +TInt CAMDownload::StartDownload() + { + RDEBUG("CAMDownload::StartDownload"); + TInt result(KErrNone); + result = iDownloader->StartDownload(); + return result; + } + +// --------------------------------------------------------------------------- +// StopDownload +// --------------------------------------------------------------------------- +TInt CAMDownload::StopDownload() + { + RDEBUG("CAMDownload::StopDownload"); + TInt result(KErrNone); + result = iDownloader->StopDownload(); + return result; + } + +void CAMDownload::ProgressDialogL(TInt32 aDownloadedSize, TInt32 aContentSize, THttpProgressState aState) + { + + iDownloader->CreateAndUpdateProgressDialogL(aDownloadedSize, aContentSize, aState); + + } +// --------------------------------------------------------------------------- +// DownloadURIMatch +// --------------------------------------------------------------------------- +TBool CAMDownload::DownloadURIMatch(const TDesC8& aURI) + { + return iDownloader->CompareDownloadURI(aURI); + } + +// --------------------------------------------------------------------------- +// DownloadURI +// --------------------------------------------------------------------------- +const TDesC8& CAMDownload::DownloadURI() + { + return iDownloader->DownloadURI(); + } + +// --------------------------------------------------------------------------- +// ContentMimeType +// --------------------------------------------------------------------------- +const TDesC8& CAMDownload::ContentMimeType() + { + return iDownloader->MimeType(); + } + +// End of File