epoc32/include/mw/httpdownloadmgrcommon.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
--- a/epoc32/include/mw/httpdownloadmgrcommon.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/mw/httpdownloadmgrcommon.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,804 @@
-httpdownloadmgrcommon.h
+/*
+* Copyright (c) 2002-2005 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:  Common constants used in Download Manager Engine
+*
+*/
+
+
+
+#ifndef HTTPDOWNLOADMGRCOMMON_H
+#define HTTPDOWNLOADMGRCOMMON_H
+
+//  INCLUDES
+#include <e32base.h>
+
+// CONSTANTS
+const TInt KMaxUrlLength = 2048;
+const TInt KMaxChunkSize = 4096;
+const TUint KMaxDefAttrLength = 32;
+const TUint KMaxRealmLength = 128;
+const TUint KMaxContentTypeLength = 256;
+const TUint KMaxDispositionTypeLength = 256;
+const TInt32 KDefaultPort = 80;
+const TInt32 KDefaultContentLength = -1;
+const TUint KMaxGeneralHeaderFieldLength = 256;
+/**  Length of a digest hash when represented in hex */
+const TInt KHashLength = 32;
+/**  Length of a digest hash before converting to hex. */
+const TInt KRawHashLength = 16;
+/**  Default FOTA package id. Default means no FOTA download! */
+const TInt32 KDefaultFotaPckgId = -1;
+/**  Non-MediaObject index */
+const TInt32 KNonMoIndex = 0;
+/**  Index of first media object */
+const TInt32 KFirstMoIndex = 1;
+
+const TInt KColon( ':' );
+const TInt KSemiColon( ';' );
+const TInt KQuote( '"' );
+const TInt KEqual( '=' );
+
+_LIT8( KHttpFieldSeparator, "\n");
+_LIT8( KHttpDispositionTypeAttachment, "attachment");
+_LIT8( KHttpDispositionTypeInline, "inline");
+_LIT8( KHttpFileNameParm, "filename");
+
+/**  OMA DD specific definition */
+_LIT8( KCodMimeType, "text/x-co-desc" );
+/**  OMA DD specific definition */
+_LIT8( KDdMimeType, "application/vnd.oma.dd+xml" );
+/**  OMA DD specific definition */
+_LIT8( KDd2MimeType, "application/vnd.oma.dd2+xml" );
+_LIT8( KRoapMimeType, "application/vnd.oma.drm.roap-trigger+xml" );
+
+/// FOTA Update Package type.
+_LIT8( KFotaPackageDataType, "application/vnd.nokia.swupd.dp2" );
+
+/**  OMA DD specific definition */
+_LIT8( KMultiPartMimeType, "multipart/related" );
+
+/**  DRM specific MIME type */
+_LIT8( KDrmMessageMimeType, "application/vnd.oma.drm.message" );
+/**  DRM specific MIME type */
+_LIT8( KDrmMessageMimeTypeDrmContent, "application/vnd.oma.drm.content" );
+/**  DRM specific MIME type */
+_LIT8( KDrmMessageMimeTypeDrmDcf, "application/vnd.oma.drm.dcf" );
+
+/**  DRM specific MIME type */
+_LIT8( KRoapPduMimeType, "application/vnd.oma.drm.roap-pdu+xml" );
+
+/**  Enumeration indicating download state. 
+ * The download states from EHttpDlMoved are temporary. E.g. download adopt 
+ * EHttpDlMoved state, but right after that, it returns to the original 
+ * EHttpDlCompleted state.
+ */
+enum THttpDownloadState
+    {
+    EHttpDlCreated = 1,
+    EHttpDlInprogress,
+    EHttpDlPaused,
+    EHttpDlCompleted,
+    EHttpDlFailed,
+
+    /// download is moved from one client instance to another one.
+    EHttpDlMoved,
+    /// MMC card or other storage media is removed from the phone.
+    EHttpDlMediaRemoved,
+    /** MMC card or other storage media inserted and 
+    * downloaded content file found on it. 
+    * If MMC card inserted, but (partially) downloaded content file 
+    * is not found on it, download is failed with error reason
+    * EContentFileIntegrity. */
+    EHttpDlMediaInserted,
+    /** Download process can be paused again. This event only occurs after
+    * EHttpDlNonPausable. */
+    EHttpDlPausable,
+    /// Download process cannot be paused, or the content will be lost.
+    EHttpDlNonPausable,
+    /// Download is deleted from another client instance.
+    EHttpDlDeleted,
+    /// Download is started when it's already progressing
+    EHttpDlAlreadyRunning,
+    /// Download is going to be deleted.
+    EHttpDlDeleting,
+    /// Out of network coverage, in case of non-pausable downloads
+    EHttpDlNonPausableNetworkLoss,
+    EHttpDlMultipleMOStarted,
+    EHttpDlMultipleMOCompleted,
+    EHttpDlMultipleMOFailed,
+    /// Internally used download event. Do NOT deal with them
+    EHttpDlCancelTransaction = 128
+    };
+
+/**  Enumeration indicating download progress state. 
+ * These enumarated values usually come with EHttpDlInprogress.
+ * An exception is EHttpContentTypeReceived that pauses the download 
+ * until client app accepts and resumes, or deletes/resets it.
+ */
+enum THttpProgressState
+    {
+    EHttpProgNone = 0,
+
+    EHttpStarted = 500,
+
+    EHttpProgCreatingConnection = 1000,
+    EHttpProgConnectionNeeded = 1010,
+    EHttpProgConnected = 1020,
+
+    EHttpProgConnectionSuspended = 1022,
+
+    EHttpProgDisconnected = 1030,
+
+    EHttpProgDownloadStarted = 2000,
+    EHttpContentTypeRequested = EHttpProgDownloadStarted + 20,
+
+    /**  Download status is EHttpDlPaused!
+    * Application can check the received content type here and decide whether 
+    * to accept it or not. Call Start again to carry on download, or Delete to 
+    * delete this download. */
+    EHttpContentTypeReceived,
+
+    EHttpProgSubmitIssued = EHttpProgDownloadStarted + 30,
+
+    EHttpProgResponseHeaderReceived = 2050,
+    EHttpProgResponseBodyReceived,
+    EHttpProgRedirectedPermanently,
+    EHttpProgRedirectedTemporarily,
+    EHttpProgDlNameChanged,
+    EHttpProgContentTypeChanged,
+
+    /// OMA DD specific progress
+    EHttpProgCodDescriptorDownloaded = 2500,
+    /// OMA DD specific progress
+    EHttpProgCodDownloadStarted,
+    /// Cod is accepted
+    EHttpProgCodDescriptorAccepted,
+    /**  Cod Handler downloaded the content, but still needs to continue some 
+    * operation. Call Start again to carry on! Download status is 
+    * EHttpDlInprogress! */
+    EHttpProgCodLoadEnd,
+    EHttpProgSupportedMultiPart,
+    
+    EHttpProgCodPdAvailable,
+    EHttpProgCodDownloadShouldResume,
+    EHttpProgCodDownloadPause,
+
+    EHttpProgMovingContentFile = 3000,
+    EHttpProgContentFileMoved,
+
+    // We have received sufficient HTTP response body to allow us to recognize 
+    // content-type from data rather than trust content-type header
+    EHttpContTypeRecognitionAvail,
+    
+    //The state is used for duplicate files .The duplicate file is renamed
+ 	//and move happens simultaneously
+ 	EHttpProgContentFileMovedAndDestFNChanged,
+ 	
+ 	// Progress event to indicate download is progressively played
+    EHttpDlProgProgressive,
+    
+    // Progress event to indicate download is not progressively played
+    EHttpDlProgNonProgressive
+    };
+
+/**  Enums to access session level attributes.
+* Attribute types: string(8/16), TInt32, TBool.
+* Some of them indicated as read-only. In debug mode if the client 
+* application tries to write such attribute server panics. 
+* In release mode it only returns with KErrArgument.
+* If not specified other, buffer size is KMaxDefAttrLength.
+*
+* Every 8bits string attribute can be queried into 16bits descriptor.
+* In this case the 8bits buffer is converted into a 16bits one.
+*/
+enum THttpDownloadMgrAttrib
+    {
+    EDlMgrAppUid,    /**<  Unique id of the application
+                            * passed in Connect.
+                            * (TInt32 - read only) */
+
+    EDlMgrIap,          /**<  Internet Access Point
+                            * (TInt32 - read/write)
+                            * (default: default AP used from CommsDb) */
+
+    EDlMgrExitAction,  /**<  See THttpDownloadMgrExitAction
+                            * (TInt32 - read/write)
+                            * (default: EExitNothing) */
+
+    EDlMgrSilentMode,       /**<  No UI interaction in download process
+                            * (TBool - read/write)
+                            * (default: EFalse)
+                            * It is supported only in case of FOTA!!! */
+
+    EDlMgrMaster,           /**<  Used if application can be executed in multiple
+                            * instances (stand-alone and embedded).
+                            * This flag indicates that this instance, while running, 
+                            * will inherit downloads of all other instances's 
+                            * when they closed.
+                            * Two masters are forbidden in the same time.
+                            * (TBool - read/write)
+                            * (default: EFalse) */
+
+    EDlMgrAllDlsInMaster,   /**<  Returns the number of downloads of the Master
+                            * instance of the application
+                            * (TInt32 - read-only) */
+
+    EDlMgrNoMediaDlsInMaster, /**<  Returns the number of downloads of the 
+                            * Master instance, those downloads were stored on a 
+                            * media, that media is not present in the phone.
+                            * (TInt32 - read-only) */
+
+    EDlMgrConnectionName,   /**<  Name of the connection to be used to create 
+                            * connection.
+                            * Or on return it is name of connection used by this instance of
+                            * download manager. Connection has to be established before this
+                            * attribute could be returned. Same as RConnection::Name().
+                            * Download Manager automatically connects to network with the 
+                            * given name.
+                            * (String16<KMaxName> - read/write) */
+
+    EDlMgrAPName,   /**<  Name of the access point used. Valid only if the IAP id
+                            * is known by download manager
+                            * (String16 - read-only)
+                            * (Not supported on yet!) */
+
+    EDlMgrNumInprogressDownloads,  
+                                /**<  Number of in-progress downloads of the client.
+                                * (TInt32 - read-only) */
+
+    EDlMgrConnected,  /**<  Returns ETrue if the session have active connection.
+                            * (TBool - read-only) */
+
+    EDlMgrNoMediaDls, /**<  Returns the number of downloads that are 
+                            * stored on a media that is not present in the phone. 
+                            * (e.g. MMC that is unplugged) */
+
+    EDlMgrEnableCookies,  /**<  Client can specify cookie usage in downloads 
+                            * via this attribute.
+                            * (TBool - read/write)
+                            * (default: ETrue) */
+
+    EDlAutoConnect,    /**<  Connection is automatically created if not 
+                            * exists and this attribute is ETrue. If it's EFalse and no 
+                            * connection, EHttpProgConnectionNeeded is sent to 
+                            * the client.
+                            * (TBool - read/write)
+                            * (default: ETrue) */
+    EDlMgrAutoConnect = EDlAutoConnect,
+
+    EDlMgrFotaDownload,   /**<  Deprecated! Do not use!!!
+                            * Indicates that it is a FOTA download
+                            * (TBool - read/write)
+                            * (default: EFalse) */
+
+    EDlMgrCodFolder,    /**<  Folder to store COD contents
+                            * (String16<KMaxPath> - read-only)
+                            * (Not supported on yet!) */
+    EDlMgrNumOfClientSideDownload,    
+                            /**<  Number of client side download
+                            * (TInt32 - read-only) */
+    EDlMgrHasActiveDownloads,
+                            /**< Indicates there are unfinished downloads, particularly
+                              * important during re-start of DownloadMgr after failure
+                              * of DownloadManager or device */
+    EDlMgrAutoAcceptCod,     /**< Tells CODHandler to suppress download confirmation
+                              * dialog for user acceptance of COD/OMA downloads */
+                              
+    EDlMgrProgressiveDownload /**<  Used to control progressiveness
+    							 * of all downoads in a session
+                            	 * (TBool - read/write)*/                              
+
+    };
+
+/**  Enums to access download specific attributes.
+* Attribute types: string(8/16), TInt32, TBool.
+* Some of them indicated as read-only. In debug mode
+* if the client application tries to write such attribute
+* server panics. In release mode it only returns with
+* KErrArgument.
+* If not specified anyway buffer size is KMaxDefAttrLength.
+*/
+enum THttpDownloadAttrib
+    {
+    // Download progress attributes
+    EDlAttrState,           /**<  See THttpDownloadState 
+                            * (TInt32 - read-only) */
+
+    EDlAttrProgressState,   /**<  See THttpProgressState 
+                            * (TInt32 - read-only) */
+
+    EDlAttrUserData,    /**<  Any user defined data that can fit into 32bits
+                            * (TInt32 - read/write) */
+
+    EDlAttrId,         /**<  Unique id of the download.
+                            * (TInt32 - read-only) */
+
+    //
+    // Attributes mandatory to issue the request
+    //
+    EDlAttrReqUrl = 100,    /**<  Requested URL of the content.
+                            * (String8<KMaxUrlLength> - read/write */
+
+    EDlAttrRedirUlr,        /**<  URL after the last permanent redirection.
+                            * When download is created or reseted it's the same
+                            * as EDlAttrReqUrl.
+                            * (String8<KMaxUrlLength> - read-only) */
+    EDlAttrRedirUrl = EDlAttrRedirUlr,
+
+    EDlAttrCurrentUrl,      /**<  Current URL of the content. It's always updated if
+                            * transaction redirected (permanently/temporary).
+                            * (String8<KMaxUrlLength> - read-only) */
+
+    EDlAttrName,   /**<  Name of the download. Generated from URL path.
+                            * If URL doesn't contain filename in the path 
+                            * this name is 'index.html' as per default. 
+                            * (String16<KMaxPath> - read-only) */
+
+    EDlAttrPort,      /**<  Port address of the host 
+                            * (TInt32 - read/write)
+                            * (default: KDefaultPort) */
+
+    EDlAttrMethod,          /**<  Do not use it. For internal usage only!!!
+                            * (TInt32 - read/write) */
+
+    EDlAttrRequestHeaderAddon,  /**<  Client application can specify addition request
+                            * header field with this attribute.
+                            * Additional header fields cannot override the ones
+                            * set by Download Manager!
+                            * Format is:
+        * fieldname KColon fieldrawdata [KHttpFieldSeparator fieldname KColon fieldrawdata]
+        * Do not insert whitespaces between fieldname and ":" and fieldrawdata!
+                            * Sample format string: "%S%c%S".
+                            * (String8 - read/write) */
+
+    EDlAttrNextBodyData,    /**<  Returns the next body chunk.
+                            * (String8<KMaxChunkSize> - read-only)
+                            * (Not supported on v2.8!) */
+
+    EDlAttrReleaseBodyData, /**<  Retrieving attribute releases memory allocated 
+                            * for body chunk returned in a previous 
+                            * EDlAttrNextBodyData call.
+                            * On return it indicates that that chunk was the last one.
+                            * (TBool - read-only)
+                            * (Not supported on v2.8!) */
+
+    EDlAttrRedirected,      /**<  Indicates that temporary redirection occured. 
+                            * Pausing this download is dangerous, because on 
+                            * restart only the original URL, or the last 
+                            * permenently redirected URL is used. It's not 
+                            * guaranteed that HTTP server will provide the same 
+                            * content on restart after a temporary redirection.
+                            * (TBool - read-only) */
+
+    EDlAttrResponseHeader,  /**<  In continue download, client application can 
+                            * pass the received response header via this 
+                            * attribute.
+                            * Format is the same as in case of EDlAttrRequestHeaderAddon.
+                            * (String8 - write-only. Accepted only if EDlAttrContinue is ETrue) */
+
+    EDlAttrRequestHeaderAddonLength, /**<  Length of the request header add-on, 
+                            * set by client application.
+                            * (TInt - read-only) */
+
+    //
+    // HTTP/Proxy authentication attributes.
+    // Have to be set when state is EHttpDlPaused/EHttpContentTypeReceived
+    //
+    EDlAttrAuthScheme = 200,  /**<  Scheme of authentication. 
+                            * See THttpAuthenticationScheme!
+                            * (TInt - read/write. Write is accepted only if EDlAttrContinue is ETrue) */
+
+    EDlAttrRealm,           /**<  Realm of the HTTP authentication
+                            * (String8<KMaxRealmLength> - read/write. 
+                            * Write is accepted only if EDlAttrContinue is ETrue) */
+
+    EDlAttrUsername,        /**<  User name.
+                            * (String8 - read/write) */
+
+    EDlAttrPassword,        /**<  Password.
+                            * (String8 - write-only) */
+
+    EDlAttrProxyRealm,      /**<  Realm of the proxy authentication.
+                            * (String8<KMaxRealmLength> - read/write. 
+                            * Write is accepted only if EDlAttrContinue is ETrue) */
+
+    EDlAttrProxyUsername,   /**<  User name for proxy authentication.
+                            * (String8 - read/write) */
+
+    EDlAttrProxyPassword,   /**<  Password for proxy authentication.
+                            * (String8 - write-only) */
+
+    //
+    // Miscellaneous download attributes
+    //
+    EDlAttrDestFilename,    /**<  Destination filename. Content will be 
+                            * moved/renamed here after download completed.
+                            * Can be set only before Start and after
+                            * download successfully completed.
+                            * (String16<KMaxPath> - read/write) */
+
+    EDlAttrLength,          /**<  Full size of the content.
+                            * (TInt32 - read/write. 
+                            * Write is accepted only if EDlAttrContinue is ETrue)
+                            * (default: KDefaultContentLength - until content size is known) */
+
+    EDlAttrDownloadedSize,  /**<  Downloaded size of the content.
+                            * (TInt32 - read-only) */
+    
+    EDlAttrNoContentTypeCheck,  /**<  Content is downloaded w/o content type validation.
+                            * (TBool - read/write)
+                            * (default: EFalse) */
+
+    EDlAttrContinueBody,    /**<  In case of continue download, the client application
+                            * can pass already received body data to download manager 
+                            * via this attribute. Note that if the download is not started this
+                            * data is lost, because download manager doesn't persist it until that.
+                            * It is because it's actually not surely known what the destination file 
+                            * size&name until that.
+                            * (String8 - write only. Accepted only if EDlAttrContinue is ETrue)
+                            * (String16 - write only. Accepted only if EDlAttrContinue is ETrue. 
+                            * 8bits data stream stored in 16bits descriptor.) */
+
+	EDlAttrDestRemovable,	/**<  Indicates that the content file is stored on 
+	                    * a removable media.
+	                    * (TBool - read-only) */
+
+    //
+    // Attributes to indicate error occured during download
+    //
+    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 EDlAttrCodDownload is ETrue) */
+
+    EDlAttrTargetApp,       /**<  Target app that can open the content
+                            * (TInt32 - read/write. 
+                            * Write is accepted only if EDlAttrContinue is ETrue) */
+
+    EDlAttrMediaType,       /**<  Media type from response header. See RFC2616.
+                            * (String8<KMaxContentTypeLength> - read-only) */
+    EDlAttrMediaTypeBoundary, /**<  Boundary attribute from media type.
+                            * (String8<KMaxContentTypeLength> - read-only) */
+
+	EDlAttrAttachmentFileName,
+
+    //
+    // Other 
+    //
+    EDlAttrDisconnectOnReset = 1000, /**<  Automatic disconnection when Reset called.
+                            * (TBool - read/write)
+                            * (default: ETrue) */
+
+    EDlAttrDisconnectOnPause,   /**<  Automatic disconnection when Pause called.
+                            * In progress state EHttpContentTypeReceived
+                            * download is in paused state but connection is
+                            * not closed.
+                            * (TBool - read/write)
+                            * (default: ETrue) */
+
+    EDlAttrUnused1, 
+
+    EDlAttrAction,   /**<  See THttpDownloadMgrAction
+                            * (TInt32 - read/write)
+                            * (default: ELaunch ) */
+
+    EDlAttrRestartAction,   /**<  See THttpRestartActions
+                            * (TInt32 - read/write)
+                            * (default: ERestartIfExpired ) */
+
+    EDlAttrNoMedia,   /**<  ETrue if the media, on which the download is stored, is removed.
+                            * A Reset clears this flag.
+                            * (TBool - read only) */
+
+    EDlAttrContinue,  /**<  Indicates that download was started in 
+                            * client app but that doesn't handle it. 
+                            * Download is created with RHttpDownloadMgr::CreateClientSideDownloadL().
+                            * (TBool - read-only)
+                            * (default: EFalse) */
+
+    EDlAttrPausable,  /**<  If EFalse, download cannot be paused, or the 
+                            * content will be lost.
+                            * (TBool - read-only)
+                            * (default: ETrue) */
+
+    EDlAttrHidden,      /**<  If true download is NOT shows in the download 
+                            * list or in any way to the user.
+                            * (TBool - read/write)
+                            * (default: EFalse) */
+
+    EDlAttrSilent,    /**<  No progress events sent to the client application. 
+                            * Only exceptions are:
+                            * EHttpDlInprogress - EHttpStarted
+                            * EHttpDlCompleted
+                            * EHttpDlFailed
+                            * (TBool - read/write)
+                            * (default: EFalse) */
+
+    EDlAttrProgressive,     /**<  Indicates that this is a progressive download.
+                            * (TBool - read/write)
+                            * (default: EFalse) */
+                            
+    EDlAttrFotaPckgId,      /**<  Fota package ID.
+                            * (TInt32 - read/write)
+                            * (default: KDefaultFotaPckgId. Default means no FOTA download! ) */
+                            
+    EDlAttrDownloadNextUrl, /**<  This attribute is not supported from 3.0!
+                            * Beginning from 3.0, Download Manager never 
+                            * downloads the next-uri of OMA/COD downloads 
+                            * automatically, but forwards the next-uri to the 
+                            * client via MHttpDownloadMgrNextUriObserver, 
+                            * then the client can create a new download with 
+                            * the next-uri it has got, if it wants so. */
+                            
+    EDlAttrDownloadUpdatedDDUri,/**<  If ETrue, updated DD URI is present in download descriptor.
+                                * Start download with updatd DD URI.
+                                * (TBool - read/write) 
+                                * (default: EFalse)
+                                */
+    
+    EDlAttrUpdatedDDUri,    /**<  Updated DD URI.
+                            * (String8<KMaxUrlLength> - read/write
+                            */                           
+                            
+    EDlAttrDDType,          /**<  Content type of the descriptor for OMA downloads. 
+                            * For HTTP this will be content type of the MO
+                            * (String8<KMaxContentTypeLength> - read only. 
+                            */                            
+
+   /**  Application can set and query raw header 
+    * fields and values via these attributes.
+    * (String<KMaxGeneralHeaderFieldLength> - read/write) */
+    EDlAttrHeaderFields     = 1500,
+    EDlAttrCharSet          = EDlAttrHeaderFields, // Character Set
+    EDlAttrResponseCharSet  = EDlAttrCharSet,
+    EDlAttrResponseAge,
+    EDlAttrResponseETag,
+    EDlAttrResponseLocation,
+    EDlAttrResponseRetryAfter,
+    EDlAttrResponseServer,
+    EDlAttrResponseVary,
+
+    /**  Request headers */
+    EDlAttrRequestAccept = 2000,
+    EDlAttrRequestAcceptCharSet,
+    EDlAttrRequestAcceptLanguage,
+    EDlAttrRequestExpect,
+    EDlAttrRequestFrom,
+    EDlAttrRequestHost,
+    EDlAttrRequestMaxForwards,
+    EDlAttrRequestPragma,
+    EDlAttrRequestReferer,
+    EDlAttrRequestUserAgent,
+    EDlAttrRequestVary,
+
+    /**  Entity header fields */
+    EDlAttrEntityAllow = 2500,
+    EDlAttrEntityContentEncoding,
+    EDlAttrEntityContentLanguage,
+    EDlAttrEntityContentLocation,
+    EDlAttrEntityExpires,
+    EDlAttrEntityLastModified,
+
+    /**  General header fields */
+    EDlAttrGeneralCacheControl = 3000,
+    EDlAttrGeneralDate,
+    EDlAttrGeneralPragma,
+    EDlAttrGeneralVia,
+    EDlAttrGeneralWarning,
+
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttrSucceeded = 8192,
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttUnused2,
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttrFailed,
+    
+    EDlAttrCodDownload,    /**<  Indicates that it is an OMA DD downlad, 
+                            * and the content is downloaded by COD Handler. 
+                            * (TBool - read-only)
+                            * (default: EFalse) */
+
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttrHashedMsgBody, 
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttrDefaultEvent,
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttrRedirectedTemporary,
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttrRedirectedPermanently,
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttrCodDescriptorAccepted,
+    /**  Internally used attribute! Do NOT use! */
+    EDlAttrCodLoadEnd,
+
+    EDlAttrDiskBufferingSize,
+                               /**< Indicates how large a buffer (in bytes) to
+                                 * use when writing this download to disk.  A
+                                 * value of 0 indicates no buffering. */
+
+    /**  Internally used attribute! Do NOT use! */                                 
+	EDlAttrCodPdAvailable,  /* This is introduced for OMA 2 (DD2). Indicates that progressive download is available 
+							* in case if license element exists in the DD2 this attribute is set when the right obj
+							* is available and the Progressive download element is true.
+							* In case when the license element in not represented this attribute is set if
+							* the Progressive download element is true.
+							*/
+
+	EDlAttrLocalFileName,   /* This is introduced for OMA 2 (DD2).
+                            * Local filename. Content will be 
+                            * moved from this location.
+                            * This attribute should be set before the client sends the Move command
+                            * (String16<KMaxPath> - read/write) */		
+
+    /**  Internally used attribute! Do NOT use! */                                 
+
+    EDlAttrCodPausable,     /**<  Would update the server about Pausability of COD Download. 
+                            * This attribute is only used for COD downloads to update pause attibure in server
+                            * (TBool - write only) 
+                            */                               				   
+	
+	EDlAttrDdFileName,		/** For storing DD File name. */
+    EDlAttrActiveDownload,
+	EDlAttrActivePlayedDownload,
+	EDlAttrNumMediaObjects,
+    EDlAttrMultipleMOLength,/**<  specifies total length of all MOs for the download.
+                            * (TInt32 - read/write. */
+
+    EDlAttrMultipleMODownloadedSize, /**<  current downloaded size (the sum of downloaded size of all completed MOs. Completed MOs can be successful/failed/paused MOs). .
+                            * (TInt32 - read-only) */
+    EDlAttrAlbumName        /**<  Name of the album. In case of non-album download, this is the download name.
+                            * (String16<KMaxPath> - read-only) */
+    };
+
+/**  
+*  See RFC2616.
+*/
+enum THttpMethod
+    {
+    EMethodGET,     
+    EMethodPOST,
+    EMethodHEAD
+    };
+
+/**  
+*  Authentication scheme
+*/
+enum THttpAuthenticationScheme
+    {
+    EAuthBasic,                 ///< Basic authentication scheme
+    EAuthDigest                ///< Digest authentication scheme
+    };
+
+/**
+*  This attribute specifies what Download Manager do
+*  with the downloads on exit.
+*/
+enum THttpDownloadMgrExitAction
+    {
+    EExitNothing,              ///< Downloads remain intacted on exit (default).
+    EExitPause,                ///< All downloads paused on exit.
+    EExitDelete                 ///< All downloads deleted on exit.
+    };
+
+/**
+*  The action to do when a download completes.
+*/
+enum THttpDownloadMgrAction
+    {
+    /**
+     * Do nothing when download completed.
+     */
+    EDoNothing  = 0,
+    /**
+     * Automatically move content to the location pointed by EDlAttrDestFilename 
+     */
+    EMove           = 0x0001,
+    /**
+     * Automatically lauch target application when download
+     * completed. This is the default if not set (default).
+     */
+    ELaunch         = 0x0002,
+    /**
+     * Automatically lauch progressive download 
+     */
+    EPdLaunch         = 0x0004  
+    };
+
+/**
+*  Restart actions.
+*/
+enum THttpRestartActions
+    {
+    ERestartIfExpired,    /**< Download content again if content is expired (default). */
+    ERestartNoIfCompleted,  /**< (Re)Start completes with EHttpDlCompleted at 
+                                    * once if already completed. 
+                                    * Anyway starts to download the content only if it's 
+                                    * not modified since last partial download.
+                                    * Restarted anyway. No content update/expiry check. */
+    ERestartForced         /**< Forced download. Don't matter if content is 
+                                    * expired, or not. */
+    };
+
+/**
+*  Allocated usable error range: -30421 -> -30470 (includes the 1st and last numbers).
+*/
+enum THttpDownloadMgrError
+    {
+    ENoError = 0,
+    EGeneral = -30421,  ///< Non-download specific error. See global error code.
+    EInternal = -30422,  /**< Internal error occured. Most probably a programming error.
+                                    * (e.g. download that is stored on a media, that is not present
+                                    * in the phone, cannot be started) */
+    EContentFileIntegrity = -30423, /**< Content file is missing or has different size then 
+                                    * it should be. EDlAttrNoMedia is ETrue if the media, on which
+                                    * content file was (partially) stored, removed. */
+    EDiskFull = -30424,  ///< Not enough disk space for the content
+    EConnectionFailed = -30425,    /**< Most probably IAP id was wrong or no network coverage.
+                                    * For more specific info about the error see EDlAttrGlobalErrorId. */
+    ETransactionFailed = -30426,    /**< Error occured in the transaction. 
+                                    * For more specific info about the error see EDlAttrGlobalErrorId. */
+    EMoveFailed = -30427,  /**< Moving content file failed. 
+                                    * See EDlAttrGlobalErrorId for specific reason. */
+    EDestFileWriteFailed = -30428,  ///< Destination file write failed.
+    EMMCRemoved = -30429,  ///< MMC card, where th download is being persisted, removed.
+    EBadUrl = -30430,   /**<  Download Manager cannot handle this URL:
+                                    * - it's too long
+                                    * - malformed. */
+
+    // Download attributes related error
+
+    EWrongDestFilename = -30431,    
+                                    ///< Error in destination filename. Most probably not a real filename.
+    EDestFileInUse = -30432,        
+                                    /**< Destination file cannot be opened/created. It's most probably
+                                    * in use by other app. or download. */
+
+    //HTTP error case
+
+    EHttpUnhandled = -30433,   
+                                    /**< Unhandled HTTP error code. See it in 
+                                    * EDlAttrGlobalErrorId. */
+    EHttpAuthenticationFailed = -30434,  
+                                    /**< 401 - Client has to set username/password 
+                                    * and Start download again. */
+    EProxyAuthenticationFailed = -30435, 
+                                    /**< 407 - Client has to set proxy 
+                                    * username/password and Start download again. */
+    EObjectNotFound = -30436,    
+                                    /**< 404 - Object not found. */
+    EPartialContentModified = -30437,    
+                                    /**< 412: partial content cannot be downloaded because
+                                    * it's already modified. 
+                                    * Call Reset or set THttpRestartActions::ERestartForced */
+
+    EContentExpired = -30438,       
+                                    /**< Paused content is expired, or content 
+                                    * is modified between two requests.
+                                    * Call Reset() or see THttpRestartActions. */
+                                    
+    // miscellaneous errors
+    EHttpRestartFailed  = -30450    /**<  Resuming progressive download failed. */
+    };
+
+#endif      // HTTPDOWNLOADMGRCOMMON_H   
+
+// End of File