/*
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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: Handle download events
*
*/
#ifndef BRCTLDOWNLOADOBSERVER_H
#define BRCTLDOWNLOADOBSERVER_H
// INCLUDES
#include <e32std.h>
#include <e32base.h>
#include <BrCtlDefs.h>
// CONSTANTS
// MACROS
/**
* Defines the download events sent to the host application by the Download Manager.
* @attention For more information on aValue, see the HandleDownloadEventL function.
*/
enum TBrCtlDownloadEvent
{
/**
* A download has started. The aValue associated with this
* event is the total size of the file to be downloaded.
* @see For more information on aValue, see HandleDownloadEventL.
*/
EDownloadEventStarted,
/**
* A download has completed. The aValue associated with this event
* is the total size of the file that was downloaded.
*/
EDownloadEventCompleted,
/**
* A download is in progress. The aValue associated with this event
* is the size of the file that was downloaded so far.
*/
EDownloadEventProgress,
/**
* A download was canceled by the HandleDownloadCommandL function.
*/
EDownloadEventCanceled,
/**
* An error occurred in the Download Manager during a download operation.
*/
EDownloadEventError,
/**
* A download was paused. The aValue associated with this event
* is the size of the file that was downloaded before the pause occurred.
*/
EDownloadEventPaused,
/**
* A paused download was resumed. The aValue associated with this event
* is the size of the file that was downloaded so far.
*/
EDownloadEventResumed,
/**
* Notifies the host application as to whether or not a particular
* download can be paused. The aValue associated with this event is one of the following:
* ETrue if the download can be paused
* EFalse if the download cannot be paused
*/
EDownloadEventPausable
};
// FORWARD DECLARATIONS
class CBrCtlInterface;
/**
* The MBrCtlDownloadObserver class handles download events.
*
* Usage:
*
* @code
* #include <BrCtlDownloadObserver.h>
*
*
* @see S60 Platform: Browser Control API Developer's Guide Version 2.0
* @lib BrowserEngine.lib
* @file BrCtlDownloadObserver.h
* @endcode *
*/
class MBrCtlDownloadObserver
{
public: // New functions
/**
* Inform the host application that a new download has started using the Download Manager
* @since 3.0
* @param aTransactionID The ID of the transaction, it is unique as long as the transaction is on-going
* @param aFileName Name of the file in which the downloaded content is stored
* @param aContentType Type of content to be downloaded. For example:
* Markup, Image, Cascading Style Sheet (CSS), Javascript, Netscape plug-in, Sound
* @param aUrl The Url of the request to be done in the new window
* @return ETrue if the file can be displayed or played while it is
* downloading (progressive download)
* EFalse if the file cannot be displayed or played while it is downloading
*/
virtual TBool NewDownloadL(TUint aTransactionID,
const TDesC& aFileName,
const TDesC& aContentType,
const TDesC& aUrl) = 0;
/**
* Tells the host application to resume an incomplete download.
* After the host application restarts, this method is called
* for each file whose download was interrupted when the host application closed.
* @since 3.0
* @param aTransactionID ID of the transaction
* This ID must be unique while the transaction is in progress.
* @param aLength Length of the content previously downloaded
* @param aFileName Name of the file in which the downloaded content is stored
* @param aContentType Type of content downloaded. For example:
* Markup, Image, Cascading Style Sheet (CSS), Javascript, Netscape plug-in, Sound
* @param aUrl URL of the source of the content to be done in the new window
* @return None
*/
virtual void ResumeDownloadL(TUint aTransactionID,
TUint aLength,
const TDesC& aFileName,
const TDesC& aContentType,
const TDesC& aUrl) = 0;
/**
* Informs the host application that one of the following download events is in progress:
* NOTE: All events have the prefix EDownload:
* EventStarted, EventCompleted, EventProgress, EventCanceled, EventError
* EventPaused, EventResumed, EventPausable
* @since 3.0
* @param aTransactionID The ID of the transaction, it is unique as long
* as the transaction is on-going
* @param aDownloadEvent Event to be handled Examples:
* EventStarted, EventCompleted, EventProgress, EventCanceled, EventError
* EventPaused, EventResumed, EventPausable
* @param aValue Value associated with the event. Examples:
* Total size of the downloaded file
* Size of that was downloaded so far
* @return void
*/
virtual void HandleDownloadEventL(TUint aTransactionID,
TBrCtlDownloadEvent aDownloadEvent,
TUint aValue) = 0;
};
#endif // BRCTLDOWNLOADOBSERVER_H
// End of File