Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
2 * Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: This file contains the definition of the Client interface of Download Mgr Server.
19 #ifndef __DOWNLOADMGR_CLIENT_H__
20 #define __DOWNLOADMGR_CLIENT_H__
25 #include <HttpDownloadMgrCommon.h>
28 // FORWARD DECLARATIONS
29 class CDownloadMgrHandler;
31 class MHttpDownloadMgrObserver;
33 class CRHttpDownloadExtension;
34 class CRHttpDownloadMgrExtension;
35 class CRHttpDlExtension;
37 class CTransactionObserver;
38 class THttpTransactionCallback;
43 * Calculate a hash and in the form of a 32 character hex result.
44 * @param aMessage Source.
45 * @param aHash Hash value.
48 void HashL( const TDesC8& aMessage, TDes8& aHash );
51 typedef CArrayPtrFlat< RHttpDownload > CDownloadArray;
52 typedef CArrayPtrFlat< MHttpDownloadMgrObserver > CDownloadMgrObserver;
57 * Contains download states
60 * @since Series 60 2.8
62 NONSHARABLE_CLASS( THttpDownloadEvent )
66 THttpDownloadState iDownloadState;
67 // download progress state
68 THttpProgressState iProgressState;
72 * Provides the interface for notification of events from a Download Manager
73 * session and its subsessions.
76 * @since Series 60 2.8
78 class MHttpDownloadMgrObserver
85 * @param aDownload The download with which the event occured.
86 * @param aEvent Event type.
89 virtual void HandleDMgrEventL( RHttpDownload& aDownload, THttpDownloadEvent aEvent ) = 0;
93 * Provides the interface for sending next uri to
94 * the client when downloading OMA or COD.
97 * @since Series 60 3.0
99 class MHttpDownloadMgrNextUriObserver
105 * Send next uri to the client. The client can then handle it.
106 * @param aDownload Reference to the download.
107 * @param aUri Next URI of the OMA or COD download.
110 virtual void NextUriL( RHttpDownload& aDownload, const TDesC8& aUri ) = 0;
114 * Creates a download manager session and performs operations on it
117 * @since Series 60 2.8
119 NONSHARABLE_CLASS( RHttpDownloadMgr ) : public RSessionBase,
120 public MHttpDownloadMgrObserver
124 * C++ default constructor.
126 IMPORT_C RHttpDownloadMgr();
128 public: // New functions
131 * Creates a download manager session.
132 * @param aAppUid Client application's UID.
133 * @param aObserver Observer
134 * @param aMaster Indicates whether (if ETrue) this instance
135 * inherints all downloads of other instances. (stand-alone app flag).
138 IMPORT_C void ConnectL( TUid aAppUid,
139 MHttpDownloadMgrObserver& aObserver,
143 * Gives version information.
145 * @return TVersion Contains version information.
147 IMPORT_C TVersion Version() const;
150 * Closes download manager session.
154 IMPORT_C void Close();
157 * Returns a list of the current downloads.
159 * @return CDownloadArray
161 IMPORT_C const CDownloadArray& CurrentDownloads() const;
164 * Creates a new download subsession.
165 * @param aUrl The url to be downloaded.
166 * @param aResult The result is true if the download is created.
167 * If the URL is already being downloaded the seult is false.
168 * @return RHttpDownload&
170 IMPORT_C RHttpDownload& CreateDownloadL( const TDesC8& aUrl, TBool& aResult );
173 * Creates a new download subsession. It creates a new one even
174 * if the URL is already beeing downloaded.
175 * @param aUrl The url to be downloaded.
176 * If the URL is already being downloaded the seult is false.
177 * @return RHttpDownload&
179 IMPORT_C RHttpDownload& CreateDownloadL( const TDesC8& aUrl );
182 * Creates a new download in client side.
183 * @param aHttpTransaction http transaction.
184 * @param aResult The result is true if the download is created.
185 * If the URL is already being downloaded the seult is false.
187 IMPORT_C RHttpDownload& CreateClientSideDownloadL( TInt aHttpTransaction,TBool& aResult );
190 * Creates a new download subsession for COD.
191 * @param aUrl The url from the COD is downloaded.
192 * @param aBuf The COD descriptor.
193 * @param aMimeType The mimetype.
194 * @param aEikEnv Eikon environment or NULL. Can be NULL if download
195 * does not require UI functionality.
196 * @param aResult The result is true if the download is created.
197 * If the URL is already being downloaded the seult is false.
198 * @return RHttpDownload&
200 IMPORT_C RHttpDownload& CreateCodDownloadL( const TDesC8& aUrl,
202 const TDesC8& aMimeType,
207 * Finds if the download is already created
209 * @param aUrl given URL
210 * @param aMsgBody Message body from post operation
211 * @return Returns a pointer to the found download or null.
212 * This pointer is NOT owned by the client!
214 IMPORT_C RHttpDownload* FindDownload( const TDesC8& aUrl, const TDesC8& aMsgBody );
217 * Pauses all downloads.
221 IMPORT_C TInt PauseAll();
224 * Resumes all downloads.
228 IMPORT_C TInt StartAll();
231 * Resets all downloads.
235 IMPORT_C TInt ResetAll();
238 * Deletes all downloads.
242 IMPORT_C TInt DeleteAll();
245 * Disconnect the http connection and pauses all downloads.
249 IMPORT_C TInt Disconnect();
252 * Gets the value for a TInt attribute.
253 * @param aAttribute Identifies the attribute to be retrived.
254 * @param aValue On completion, contains the requested TInt attribute.
257 IMPORT_C TInt GetIntAttribute( const TUint aAttribute, TInt32& aValue );
260 * Gets the value for a TBool attribute.
261 * @param aAttribute Identifies the attribute to be retrived.
262 * @param aValue On completion, contains the requested TBool attribute.
265 IMPORT_C TInt GetBoolAttribute( const TUint aAttribute, TBool& aValue );
268 * Gets the value for a TDes16 attribute.
269 * @param aAttribute Identifies the attribute to be retrived.
270 * @param aValue On completion, contains the requested TDes16 attribute.
273 IMPORT_C TInt GetStringAttribute( const TUint aAttribute, TDes16& aValue );
276 * Gets the value for a TDes8 attribute.
277 * @param aAttribute Identifies the attribute to be retrived.
278 * @param aValue On completion, contains the requested TDes8 attribute.
281 IMPORT_C TInt GetStringAttribute( const TUint aAttribute, TDes8& aValue );
284 * Sets the value for a TInt attribute.
285 * @param aAttribute Identifies the attribute to be set.
286 * @param aValue The value to be set.
289 IMPORT_C TInt SetIntAttribute( const TUint aAttribute, TInt32 aValue );
292 * Sets the value for a TBool attribute.
293 * @param aAttribute Identifies the attribute to be set.
294 * @param aValue The value to be set.
297 IMPORT_C TInt SetBoolAttribute( const TUint aAttribute, TBool aValue );
300 * Sets the value for a TDesC attribute.
301 * @param aAttribute Identifies the attribute to be set.
302 * @param aValue The value to be set.
305 IMPORT_C TInt SetStringAttribute( const TUint aAttribute, const TDesC16& aValue );
308 * Sets the value for a TDesC8 attribute.
309 * @param aAttribute Identifies the attribute to be set.
310 * @param aValue The value to be set.
313 IMPORT_C TInt SetStringAttribute( const TUint aAttribute, const TDesC8& aValue );
316 * Sets the value for the default TInt attribute.
317 * @param aAttribute Identifies the attribute to be set.
318 * @param aValue The value to be set.
321 IMPORT_C TInt SetDefaultIntAttribute( const TUint aAttribute, TInt32 aValue );
324 * Sets the value for the default TBool attribute.
325 * @param aAttribute Identifies the attribute to be set.
326 * @param aValue The value to be set.
329 IMPORT_C TInt SetDefaultBoolAttribute( const TUint aAttribute, TBool aValue );
332 * Sets the value for the default TDesC attribute.
333 * @param aAttribute Identifies the attribute to be set.
334 * @param aValue The value to be set.
337 IMPORT_C TInt SetDefaultStringAttribute( const TUint aAttribute, const TDesC16& aValue );
340 * Sets the value for the default TDesC8 attribute.
341 * @param aAttribute Identifies the attribute to be set.
342 * @param aValue The value to be set.
345 IMPORT_C TInt SetDefaultStringAttribute( const TUint aAttribute, const TDesC8& aValue );
348 * Adds client to the observer list.
349 * @param aObserver Observer.
352 IMPORT_C void AddObserverL( MHttpDownloadMgrObserver& aObserver );
355 * Removes client from the observer list.
356 * @param aObserver Observer.
359 IMPORT_C void RemoveObserver( MHttpDownloadMgrObserver& aObserver );
362 * Set next uri observer.
363 * @param aObserver Observer.
366 IMPORT_C void SetNextUriObserver( MHttpDownloadMgrNextUriObserver* aObserver );
368 protected: // from MHttpDownloadMgrObserver
371 * Indicates an event.
372 * @param aDownload The download with which the event occured.
373 * @param aEvent Event type.
376 void HandleDMgrEventL( RHttpDownload& aDownload, THttpDownloadEvent aEvent );
381 * Indicates the session's event.
382 * @param aHandle Unique identifier of server side subsession.
383 * @param aEvent Event type.
386 void HandleSessionEventL( TInt aHandle, THttpDownloadEvent aEvent );
388 private: // New functions
391 * Creates a download manager session.
392 * @param aAppUid Client application's UID.
393 * @param aObserver Observer
394 * @param aMaster Indicates whether (if ETrue) this instance
395 * inherints all downloads of other instances. (stand-alone app flag).
398 void DoConnectL( TUid aAppUid,
399 MHttpDownloadMgrObserver& aObserver,
403 * Initializes the download manager session.
404 * @param aAppUid Client app's UID.
405 * @param aObserver Observer to add to the observer list.
406 * @param aMaster Indicates whether (if ETrue) this instance
407 * inherints all downloads of other instances. (stand-alone app flag).
410 void InitializeL( TUid aAppUid,
411 MHttpDownloadMgrObserver& aObserver,
414 protected: // New functions
417 * Adds the created download to the list. If it is already added,
418 * then it will do nothing.
419 * @param aElement Download subsession.
420 * @return RHttpDownload& reference to the added item in the list.
422 RHttpDownload& AddToArrayL( RHttpDownload* aElement );
424 private: // New functions
427 * Removes the download from the list.
428 * @param aElement Download subsession.
431 void RemoveFromArray( RHttpDownload* aElement );
434 * Finds the download in the list.
435 * @param aElement Download subsession.
436 * @param aIndex Index of the element found.
437 * @return KErrNone if found, KErrNotFound otherwise..
439 TInt FindInArray( RHttpDownload* aElement, TInt& aIndex ) const;
442 * Returns a reference to the download identified by a handle.
443 * @param aHandle Handle identifier.
444 * @return RHttpDownload&
446 RHttpDownload& DownloadFromHandleL( TUint aHandle );
449 * Finds observer based on index.
450 * @param aObserver Observer found.
451 * @param aIndex Index.
454 TInt FindObserver( MHttpDownloadMgrObserver& aObserver, TInt& aIndex ) const;
457 * Attach client to the session.
458 * @param aBuf Buffer to the subsession IDs.
461 void AttachL( TDes8& aBuf );
464 * Close a download subsession.
465 * @param aElement Download subsession.
468 void CloseDownload( RHttpDownload* aElement );
471 * Packes the default values of the attributes.
473 * @return bbuffer of the packed attribs.
475 HBufC8* PackedDefaultAttributesLC();
478 * Sets the default value for the TInt32 attribute.
479 * @param aAttribute Identifies the attribute to be set.
480 * @param aValue The value to be set.
483 void DoSetDefaultAttributeL( const TUint aAttribute, TInt32 aValue );
486 * Sets the default value for the TBool attribute.
487 * @param aAttribute Identifies the attribute to be set.
488 * @param aValue The value to be set.
491 void DoSetDefaultAttributeL( const TUint aAttribute, TBool aValue );
494 * Sets the default value for the TDesC8 attribute.
495 * @param aAttribute Identifies the attribute to be set.
496 * @param aValue The value to be set.
499 void DoSetDefaultAttributeL( const TUint aAttribute, const TDesC8& aValue );
502 * Sets the default value for the TDesC16 attribute.
503 * @param aAttribute Identifies the attribute to be set.
504 * @param aValue The value to be set.
507 void DoSetDefaultAttributeL( const TUint aAttribute, const TDesC16& aValue );
510 * Start session's event notification.
511 * @param aStatus Handler's request status.
514 void StartSessionEventNotification( const TDesC8& aDownloadState,
515 const TDesC8& aProgressState,
516 const TDesC8& aHandle,
517 TRequestStatus& aStatus );
520 * Cancels session's event notification.
524 void CancelSessionEventNotification();
527 * Leave version of FindDownload
529 RHttpDownload* DoFindDownloadL( const TDesC8& aUrl, const TDesC8& aMsgBody );
532 * Gets the number of client side download.
533 * @param aValue Num of client side download
534 * @return Error code.
536 TInt NumberOfClientSideDownload( TInt32& aValue );
539 * Tells that event is being broadcasted.
543 TBool IsEventBroadcasting();
546 * Do-Indicates the session's event.
547 * @param aHandle Unique identifier of server side subsession.
548 * @param aEvent Event type.
551 void DoHandleSessionEventL( TInt aHandle, THttpDownloadEvent aEvent );
554 * Broadcasts an event.
555 * @param aDownload The download with which the event occured.
556 * @param aEvent Event type.
559 void BroadcastEvent( RHttpDownload& aDownload,
560 THttpDownloadEvent aEvent );
563 * Returns the next uri observer from the extension calss.
564 * @return Next uri observer.
566 MHttpDownloadMgrNextUriObserver* NextUriObserver() const;
569 * Returns the session id
572 TInt SessionId() const;
575 * Broadcast deleting event.
576 * @param aDownload download is beenig deleted.
579 // void BroadcastDeleting( RHttpDownload& aDownload );
582 * Returns the the event priority flag
585 TInt EventPriorityFlag() const;
588 * Increments the event priority flas
591 void IncrementEventPriorityFlag();
594 * Decrements the event priority flag
597 void DecrementEventPriorityFlag();
600 // The client application UID.
602 // List of downloads.
603 CDownloadArray* iDownloadArray; ///< Owned.
604 // List of observers.
605 CDownloadMgrObserver* iObservers; ///< Owned.
606 // Default attributes.
607 CArrayPtrFlat< CDefaultAttrib >* iDefaultAttribs; ///< Owned.
608 // Moved event handler
609 CDownloadMgrHandler* iManagerHandler; ///< Owned.
611 CRHttpDownloadMgrExtension* iExtension; ///< Owned.
613 public: // Friend classes
615 friend class RHttpDownload;
616 friend class CDownloadMgrHandler;
617 friend class CTransactionObserver;
618 friend class CCodObserver;
622 * Creates a download manager subsession and performs operations on it
625 * @since Series 60 2.8
627 NONSHARABLE_CLASS( RHttpDownload ): public RSubSessionBase
631 * Cod download progress states
633 enum TCodProgressState
642 * C++ default constructor.
644 RHttpDownload( RHttpDownloadMgr* aServer );
646 public: // New functions
649 * Starts downloading.
653 IMPORT_C TInt Start();
656 * Pauses downloading.
660 IMPORT_C TInt Pause();
663 * Resets downloading.
667 IMPORT_C TInt Reset();
670 * Deletes downloading.
674 IMPORT_C TInt Delete();
677 * Moves downloaded content to the previously specified location
681 IMPORT_C TInt Move();
684 * Gets the value for a TInt attribute.
685 * @param aAttribute Identifies the attribute to be retrived.
686 * @param aValue On completion, contains the requested TInt attribute.
689 IMPORT_C TInt GetIntAttribute( const TUint aAttribute, TInt32& aValue );
692 * Gets the value for a TBool attribute.
693 * @param aAttribute Identifies the attribute to be retrived.
694 * @param aValue On completion, contains the requested TBool attribute.
697 IMPORT_C TInt GetBoolAttribute( const TUint aAttribute, TBool& aValue );
700 * Gets the value for a TDes16 attribute.
701 * @param aAttribute Identifies the attribute to be retrived.
702 * @param aValue On completion, contains the requested TDes16 attribute.
705 IMPORT_C TInt GetStringAttribute( const TUint aAttribute, TDes16& aValue );
708 * Gets the value for a TDes8 attribute.
709 * @param aAttribute Identifies the attribute to be retrived.
710 * @param aValue On completion, contains the requested TDes8 attribute.
713 IMPORT_C TInt GetStringAttribute( const TUint aAttribute, TDes8& aValue );
716 * Gets the download's destination file's handle.
717 * @param aFile RFile that adopts file handle from download.
719 IMPORT_C TInt GetFileHandleAttribute( RFile& aFile );
722 * Sets the value for a TInt attribute.
723 * @param aAttribute Identifies the attribute to be set.
724 * @param aValue The value to be set.
727 IMPORT_C TInt SetIntAttribute( const TUint aAttribute, TInt32 aValue );
730 * Sets the value for a TDesC attribute.
731 * @param aAttribute Identifies the attribute to be set.
732 * @param aValue The value to be set.
735 IMPORT_C TInt SetBoolAttribute( const TUint aAttribute, TBool aValue );
738 * Sets the value for a TDesC attribute.
739 * @param aAttribute Identifies the attribute to be set.
740 * @param aValue The value to be set.
743 IMPORT_C TInt SetStringAttribute( const TUint aAttribute, const TDesC16& aValue );
746 * Sets the value for a TDesC8 attribute.
747 * @param aAttribute Identifies the attribute to be set.
748 * @param aValue The value to be set.
751 IMPORT_C TInt SetStringAttribute( const TUint aAttribute, const TDesC8& aValue );
754 * Sets the download's destination file handle.
755 * @param aFile RFile to be transfered to server.
756 * @return KErrNotSupported on non-support platform.
757 * @return KErrBadHandle is file is not opened.
759 IMPORT_C TInt SetFileHandleAttribute( RFile& aFile );
761 * Gets the value for a TInt attribute.
762 * @param aAttribute Identifies the attribute to be retrived.
763 * @param aMoIndex Identifies the media object index.
764 * @param aValue On completion, contains the requested TInt attribute.
767 IMPORT_C TInt GetIntAttribute( const TUint aAttribute, const TInt32& aMoIndex, TInt32& aValue );
770 * Gets the value for a TBool attribute.
771 * @param aAttribute Identifies the attribute to be retrived.
772 * @param aMoIndex Identifies the media object index.
773 * @param aValue On completion, contains the requested TBool attribute.
776 IMPORT_C TInt GetBoolAttribute( const TUint aAttribute, const TInt32& aMoIndex, TBool& aValue );
779 * Gets the value for a TDes16 attribute.
780 * @param aAttribute Identifies the attribute to be retrived.
781 * @param aMoIndex Identifies the media object index.
782 * @param aValue On completion, contains the requested TDes16 attribute.
785 IMPORT_C TInt GetStringAttribute( const TUint aAttribute, const TInt32& aMoIndex, TDes16& aValue );
788 * Gets the value for a TDes8 attribute.
789 * @param aAttribute Identifies the attribute to be retrived.
790 * @param aMoIndex Identifies the media object index.
791 * @param aValue On completion, contains the requested TDes8 attribute.
794 IMPORT_C TInt GetStringAttribute( const TUint aAttribute, const TInt32& aMoIndex, TDes8& aValue );
797 * Sets the value for a TDesC attribute.
798 * @param aAttribute Identifies the attribute to be set.
799 * @param aMoIndex Identifies the media object index.
800 * @param aValue The value to be set.
803 IMPORT_C TInt SetStringAttribute(const TUint aAttribute, const TInt32& aMoIndex, const TDesC16& aValue );
806 * Sets the download data (media information).
807 * @param sizeBytes The length of descriptor (second parameter) in bytes.
808 * @param aValue The value to be set.
811 IMPORT_C TInt SetDownloadDataAttribute( const TDesC8& aValue );
814 * Sets the download data (media information).
815 * @param sizeBytes The length of descriptor (second parameter) in bytes.
816 * @param aValue The value to be set.
819 IMPORT_C TInt SetTrackDataAttribute( const TInt aIndex, const TDesC8& aValue );
821 public: // New functions
824 * Closes download subsession.
832 * Indicates whether the download is closed.
834 * @return TBool - ETrue if download is closed else EFalse.
842 * Resume COD download.
846 void ResumeCodDownloadL() ;
849 * Get Downloaded Size of product.
853 TInt GetProductDownloadedSize();
855 private: // New functions
858 * Closes download subsession. This is called internally to close the sub session when the download
859 * is completed. Only the subsession will be closed but retains the RHttpDownload object.
862 void CloseSubSession();
865 * This is called internally to save the downloaded subsession before closing the subsession
869 void SaveDownloadInfoL();
872 * Creates download subsession.
873 * @param aUrl The url to be downloaded.
876 void CreateL( const TDesC8& aUrl, const TPtr8 aPackedAttribs );
879 * Attaches subsession to the server subsession by handle.
880 * @param aHandle A handle which identifies the server subsession.
883 void AttachL( TInt aHandle );
886 * Start event notification.
887 * @param aDownloadState State.
888 * @param aProgressState Progress.
889 * @param aEventAttrib Packed attribs
890 * @param aStatus Handler's request status.
893 void StartEventNotification( TDes8& aDownloadState,
894 TDes8& aProgressState,
896 TRequestStatus& aStatus );
899 * Cancels event notification.
903 void CancelEventNotification();
906 * Returns true if the handle is equals with the stored one.
907 * @param aHandle Handle.
910 TBool IsDownload( TInt aHandle );
913 * Returns true if the params belongs to this download.
915 * @param aParsedReqUrl given URL
916 * @param aMsgBody Message body from post operation
919 TBool IsDownloadL( const TUriParser8& aParsedReqUrl,
920 const TDesC8& aMsgBody );
923 * Sets the default value for the attributes.
924 * @param aDownload The download which default attributes to be set.
927 void SetDefaultAttributesL( const TDesC8& aPackedAttribs );
930 * Buffers attributes which need when a client deletes download.
934 void BufferAttributesL();
941 void SetEventType( THttpDownloadState aEventType );
944 * Sets http transaction.
945 * @param aHttpTransaction.
948 void SetHttpTransactionL( TInt aHttpTransaction );
951 * Delete http transaction.
955 void DeleteTransaction();
958 * Initialize OMA DD download.
959 * @param aBuf The descriptor.
960 * @param aType Descriptor data type.
961 * @param aEikEnv Eikon environment or NULL. Can be NULL if download
962 * does not require UI functionality. If download needs UI but NULL is
963 * passed here, the download fails with EFailedPermanent KErrCancel.
966 void InitCodDownloadL( const TDesC8& aBuf,
967 const TDesC8& aMimeType,
968 CEikonEnv* aEikEnv );
971 * Initialize paused OMA DD download.
972 * @param aAppUid App UID of the client.
975 void InitPausedCodDownloadL( const TUid aAppUid );
978 * Starts COD download.
984 * Checks the mime type of a completed content.
985 * Creates a cod download if it is considered as OMA DD.
986 * The return value is the result of the checking.
987 * Leaves in case of failure.
990 TBool CheckContentTypeAndCreateCodDownloadL();
993 * Sets the error value.
994 * @param aAttribute Identifies the attribute to be set.
995 * @param aValue The value to be set.
998 TInt SetOnError( TInt aError,
999 THttpDownloadMgrError aDlError = EGeneral );
1003 * Allocate buffer for event attribute. Part of IPC optimalization.
1006 HBufC8* AllocEventAttribBufL();
1010 * Unpack event attribute package.
1011 * @param aPack Packed attributes.
1014 void UnpackEventAttribL( const TDesC8& aPack );
1017 * True if it is a client side download
1021 TBool IsClientSideDownload() const;
1024 * Tells that download should be deleted.
1028 TBool IsToBeDeleted();
1031 * Starts downloading.
1038 * Returns the the event priority flag from session
1041 TInt EventPriorityFlag() const;
1044 * ETrue if download should be deleted on COD completion.
1047 TBool IsDeleteCodWhenDone() const;
1050 * Sets COD in progress flag.
1053 void SetCodInProgress( TCodProgressState aVal );
1056 * Attach to an existing download.
1057 * @param aDlId Download ID.
1060 void AttachToDownloadL( const TInt32 aDlId );
1063 * Sets COD in progress flag.
1064 * @return iExtension
1066 TInt32 ActiveMoIndex() const;
1069 * To stop waiting loop of AS
1072 void StopWaitingAS();
1075 // Event notification handler.
1076 CDownloadMgrHandler* iDownloadHandler; ///< Owned.
1077 // Download manager session.
1078 RHttpDownloadMgr* iDownloadMgr; ///< NOT Owned.
1079 // Unique identifier of server side subsession.
1082 CRHttpDownloadExtension* iExtension; ///< Owned.
1084 CTransactionObserver* iTransactionObserver;
1085 RHTTPTransaction* iHttpTransaction;
1086 // Descriptor Based download COD/DD
1087 CCodDownload* iCodDownload; ///< Owned.
1089 CCodObserver* iCodObserver; ///< Owned.
1090 // Client Side Download
1091 TBool iClientSideDownload;
1092 // Boolean flag which indicates download closure
1094 // Boolean flag which indicates download subsession closure
1095 TBool iClosedSubSession;
1096 // Extension class to cache the cloased subsession
1097 CRHttpDlExtension* iDlExtension; ///< Owned.
1099 CActiveSchedulerWait* iWait;
1101 // Boolean flag which indicates Active Scheduler is Ready
1104 public: // Friend classes
1106 friend class CDownloadMgrHandler;
1107 friend class RHttpDownloadMgr;
1108 friend class RHttpDownloadMgrApiExt;
1109 friend class CTransactionObserver;
1110 friend class CCodObserver;
1111 friend class CDownloadMgrHandler;
1115 #endif /* __DOWNLOADMGR_CLIENT_H__ */