diff -r 000000000000 -r dd21522fd290 browserutilities/downloadmgr/DownloadMgrServEng/Inc/HttpClientApp.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/downloadmgr/DownloadMgrServEng/Inc/HttpClientApp.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,266 @@ +/* +* 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 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: ?Description +* +*/ + + + +#ifndef HTTPCLIENTAPP_H +#define HTTPCLIENTAPP_H + +// INCLUDES +#include + +// CONSTANTS +_LIT( KInfoFilesDirName, "downloads" ); +_LIT( KContentsDirName, "contents" ); +_LIT( KCodsDirName, "cod" ); +_LIT( KInfoFilesCodDirName, "codinfo" ); + +// MACROS +//#define ?macro ?macro_def + +// DATA TYPES +//enum ?declaration +//typedef ?declaration +//extern ?data_type; + +// FUNCTION PROTOTYPES +//?type ?function_name(?arg_list); + +// FORWARD DECLARATIONS +class CHttpDownloadManagerServerEngine; +class CHttpConnHandler; +class CHttpDownload; +class MDownloadStateObserver; +class CHttpClientAppInstance; + +// CLASS DECLARATION + +/** +* ?one_line_short_description. +* ?other_description_lines +* +* @lib ?library +* @since Series 60 v2.8 +*/ +NONSHARABLE_CLASS( CHttpClientApp ) : public CBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CHttpClientApp* NewL( TUint32 aAppUid, + CHttpDownloadManagerServerEngine* aEngine ); + + /** + * Destructor. + */ + virtual ~CHttpClientApp(); + + public: // New functions + + /** + * Removes the given download from downloads array. + * This download is deleted! + * @since Series 60 v2.8 + * @param aDownload download to be unregistered + * @return none. + */ + IMPORT_C void UnregisterDownload( CHttpDownload* aDownload ); + + /** + * Creates a new client instances. + * @since Series 60 v2.8 + * @param aObserver pointer to a download state observer. Not owned. + * @param aGetAllPendingDownloads this client instance gets all non-attached downloads. + * @return created client instance. + */ + CHttpClientAppInstance* CreateNewInstanceL( MDownloadStateObserver* aObserver, + TBool aGetAllPendingDownloads ); + + /** + * Closes the given client instance. + * @since Series 60 v2.8 + * @param aInstance client instance to be closed + * @return none. + */ + void CloseInstance( CHttpClientAppInstance* aInstance ); + + /** + * Closes the entire client app with its instances and downloads + * @since Series 60 v2.8 + * @param bStore if ETrue the current state is stored. + * @return none. + */ + void CloseClientApp( TBool bStore = ETrue ); + + /** + * Creates a new download. + * @since Series 60 v2.8 + * @param aClAppInstance new download attached to this client instance + * @param aUrl URL of the new download + * @return pointer to the new download. Ownership is not passed. + */ + CHttpDownload* CreateNewDownloadL( CHttpClientAppInstance* aClAppInstance, + const TDesC8& aUrl ); + + /** + * Returns the client applications's UId. + * @since Series 60 v2.8 + * @return UId of the client application + */ + TUint32 AppUid() const; + + /** + * Returns the array of the instance of the client application + * @since Series 60 v2.8 + * @return array of the instances. Ownership is not passed. + */ + CArrayPtrFlat* Instances() const; + + /** + * Returns the array of the all the downloads within this client + * @since Series 60 v2.8 + * @return array of all the downloads within this client. Ownership is not passed. + */ + CArrayPtrFlat* Downloads() const; + + /** + * Returns the engine where this client applications is created. + * @since Series 60 v2.8 + * @return pointer to the engine. Ownership is not passed. + */ + CHttpDownloadManagerServerEngine* Engine() const; + + /** + * Registers the given download in the downloads array + * @since Series 60 v2.8 + * @param aDownload download to be registered + * @return none. Leaves on error. + */ + void RegisterDownloadL( CHttpDownload* aDownload ); + + + /** + * Returns the number of downloads attached to the master + * instance. + * @since Series 60 v2.8 + * @param aNoMediasOnly only downloads of which EDlAttrNoMedia attribute is ETrue + * @return number of downloads attached to the master instance + */ + TInt32 DownloadsInMaster( TBool aNoMediasOnly ); + + /** + * This connhandler is not assign to any client instance + * and already disconnected. To avoid memory leak it + * has to be destroyed. + * @since Series 60 v2.8 + * @param aConnHandler ConnHandler to be deleted + * @return none + */ + void DestroyConnHandler( CHttpConnHandler* aConnHandler ); + + /** + * Loads info of this client application. + * @since Series 60 v2.8 + * @param aFolder Folder where the info file stored + * @return none. Leaves on error. + */ + void LoadClientInfoL( const TDesC& aFolder ); + + public: // Functions from base classes + protected: // New functions + /** + * Stores info of this client application. + * @since Series 60 v2.8 + * @return none. Leaves on error. + */ + void StoreClientInfoL(); + + /** + * Load all downloads from disk. + * @since Series 60 v2.8 + * @return none. Leaves on error. + */ + void LoadDownloadsL(); + + /** + * Converts filename to download id. + * @since Series 60 v2.8 + * @param aFilename download filename + * @return id of the download. Leaves on error. + */ + TInt32 DownloadIdL( const TDesC& aFilename ) const; + + protected: // Functions from base classes + + private: + + /** + * C++ default constructor. + */ + CHttpClientApp( TUint32 aAppUid, + CHttpDownloadManagerServerEngine* aEngine ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + // Prohibit copy constructor if not deriving from CBase. + // CHttpClientApp( const CHttpClientApp& ); + // Prohibit assigment operator if not deriving from CBase. + // CHttpClientApp& operator=( const CHttpClientApp& ); + + /** + * Checks whether the downlod is already loaded or not. + * @returns whether the downlod is already loaded or not + */ + TBool IsDownloadAlreadyLoaded( TInt32 aId ) const; + + public: // Data + + // ?one_line_short_description_of_data + + protected: // Data + + // ?one_line_short_description_of_data + TUint32 iAppUid; + CHttpDownloadManagerServerEngine* iEngine; // not owned + CArrayPtrFlat* iInstances; // owner + CArrayPtrFlat* iDownloads; // owner + CArrayPtrFlat* iConnections; // owned + + private: // Data + // ?one_line_short_description_of_data + //?data_declaration; + + // Reserved pointer for future extension + //TAny* iReserved; + + public: // Friend classes + //?friend_class_declaration; + protected: // Friend classes + //?friend_class_declaration; + private: // Friend classes + //?friend_class_declaration; + + }; + +#endif // HTTPCLIENTAPP_H + +// End of File