--- /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<TUint>( this ),
+ reinterpret_cast<TUint>(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<KMaxContentTypeLength> - 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<KMaxContentTypeLength> - 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