The S60 Download Manager enables its clients to download files over HTTP(S) in a separate subsession that can continue if the client application stops running. The Download Manager is composed of two main parts:
The server downloads the files; it can handle multiple simultaneous downloads. The UI library contains a set of dialogs that are employed when a download requires user interaction. This library provides menus that can easily integrate with the options menu of the client application.
The client application is responsible for all downloads. A typical client of the Download Manager has the following characteristics:
The client application must pass its UID to the Download Manager upon its construction. The client can configure the download to do one of the following if the application closes:
Upon restart, the ongoing or paused download can be retrieved. The following table describes the subsystems of the Download Manager.
Subsystem | Description |
---|---|
Download Manager server | Provides the download functionality. |
Client application | The host application.
The client application and the Download Manager server run in separate threads. |
Download Manager client API | Provides communication between the client and the server. |
Download Manager User Interface (UI) library | Provides the download menu and dialogs for user interaction with the Download Manager. |
The Download Manager API enables developers to do the following:
Logical and Technical Classification
The Download Manager API is classified as a Library API. It provides classes and functions that are used in the context of the client's thread. The classes and functions can be used independently of each other.
The Download Manager API is a Client-Server interface.
Audience
This API is intended for developers who wish to create and interact with HTTP(S) download events for the S60 platform. The reader should be familiar with the C++ programming language and the Symbian operating system.
Development Environment Requirements
The Download Manager API is compatible with any application that complies with S60 3rd Edition.
The classes and methods for this API are defined in the Epoc32\Include\DownloadMgrClient.h
file.
To set up the environment for development, follow these steps:
DownloadMgr.lib
library.
DownloadMgrUiLib.lib
file and include the CDownloadMgrUiLibRegistry.h
header
file
CDownloadMgrUiUserInteractions.h
CDownloadMgrUiDownloadsList.h
CDownloadMgrUiDownloadMenu.h
About the Download Manager Server
The Download Manager Server utilizes the Symbian OS client-server framework. This enables downloads to run in a separate process that continues in the event of a power outage or client application crash. Each download event is treated as a separate subsession.
The Download Manager Engine supports the following :
Downloads are visible only to the host application.
About the Download Manager UI Library
The Download Manager UI library contains the following information:
This section describes the types of things you can do with the Download Manager API. The main use cases are as follows:
The following table contains descriptions of the structural classes. All
of these classes are defined in the DownloadMgrClient.h
header
file.
Class Name | Class Description |
---|---|
RHttpDownload
|
Class that represents an individual download subsession.
Provides functions that:
|
RHttpDownloadMgr
|
Class that represents a Download Manager session.
Provides functions that:
|
MHttpDownloadMgrObserver
|
Observer interface for notification of download events
Provides functions that indicate that an event occurred. |
MHttpDownloadMgrNextUriObserver
|
Interface for notification about the next-URI of a Content Object Descriptor
(COD) or an OMA Download Descriptor (DD) download.
Provides functions that send the URI of the next OMA download to the client. |
THttpDownloadEvent
|
Enumeration that contains the download events. This class provides
no functions.
Download events can include:
|
The following table describes the structural classes of the UI Library.
The classes named with a C
prefix are defined in the header
file having the same name as the class. The MDownloadMgrUiLibRegModel
class
is in the CDownloadMgrUiLibRegistry.h
header file.
Class Name | Class Description |
---|---|
CDownloadMgrUiLibRegistry
|
Class that supports registration of the User Interactions (dialogs)
and the Downloads List.
Provides functions that:
|
CDownloadMgrUiUserInteractions
|
Class that supports dialogs for the following user interactions:
|
CDownloadMgrUiDownloadsList
|
Class that represents the Downloads List component. It provides functions
that:
|
CDownloadMgrUiBase
|
Abstract base class for UI Library classes with UI controls. It supports set and get attributes
belonging to the derived classes. These attributes are different from the
attributes of the Download Manager session and subsession. The derived classes
define and support these attributes. These classes are listed in the relevant
sections of the UI Library class descriptions.
Provides functions that:
|
CDownloadMgrUiLibRegModel
|
Abstract class that enables access to the resources of the UI Library
Registry. This class is defined in the CDownloadMgrUiLibRegistry.h header
file. Clients of the UI Library are not required to derive from this class.
Provides functions that:
|
CDownloadMgrUiDownloadMenu
|
Class that supports the Download Menu for the client. The client is
not required to construct a Download Menu object. Instead, an instance can
be reached with CDownloadMgrUiDownloadsList::DownloadMenu .
This class provides a function that inserts a menu item into the client application's menu to access the Downloads List. |