diff -r 65a3ef1d5bd0 -r f742655b05bf voipplugins/accountcreationplugin/engine/inc/acpcontroller.h --- a/voipplugins/accountcreationplugin/engine/inc/acpcontroller.h Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,487 +0,0 @@ -/* -* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "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: Declarition of CAcpController -* -*/ - - -#ifndef ACPCONTROLLER_H -#define ACPCONTROLLER_H - -#include -#include - -#include -#include -#include - -#include "accountcreationengineconstants.h" -#include "macpxmlhandlerobserver.h" -#include "macphttphandlerobserver.h" -#include "macpimagehandlerobserver.h" - -class CFbsBitmap; -class CAcpProvider; -class CAcpXmlHandler; -class CAcpImageHandler; -class CAcpHttpHandler; -class CAcpImageHandler; -class MAcpControllerObserver; -class CACPBrowserParams; -class MSIPProfileRegistryObserver; -class MImageHandlerObserver; - -/** - * CAcpController class - * Declarition of CAcpController. - * - * @lib accountcreationplugin.lib - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CAcpController ) : public CBase, - public MAcpXmlHandlerObserver, - public MAcpHttpHandlerObserver, - public MSIPProfileRegistryObserver, - public MImageHandlerObserver - { -public: - - /** - * Different kind of field types supported by ACP. - */ - enum TFetchTypes - { - EXml = 0, // provider list in xml form (default) - ESis, // sis file - EIcon, // icon file (png) - EAction // action file containing wbxml provisioning data - }; - - /** - * Two-phased constructor. - * - * @param aObserver Controller observer. - */ - IMPORT_C static CAcpController* NewL( - MAcpControllerObserver& aObserver ); - - /** - * Two-phased constructor. - * - * @param aObserver Controller observer. - */ - IMPORT_C static CAcpController* NewLC( - MAcpControllerObserver& aObserver ); - - /** - * Destructor. - */ - virtual ~CAcpController(); - - /** - * Fetches provider list from network and parses it. - * - * @since S60 v3.2 - */ - IMPORT_C void FetchProviderListFromNetworkL(); - - /** - * Fetches SIS file from network. - * - * @since S60 v3.2 - * @param aSisUrl URL where to download. - */ - IMPORT_C void FetchSisFileFromNetworkL( TDesC8& aSisUrl ); - - /** - * Fetches icon file from network. - * - * @since S60 v3.2 - * @param aIconUrl URL where to download. - */ - IMPORT_C void FetchIconFileFromNetworkL( TDesC8& aIconUrl ); - - /** - * Returns count of providers in providers array. - * - * @since S60 v3.2 - * @return Number of providers - */ - IMPORT_C TInt CountOfProviders() const; - - /** - * Returns provider information referenced by index. - * - * @since S60 v3.2 - * @param aIndex Provider list index. - * @return Pointer to provider name. - */ - IMPORT_C const TPtrC ProviderNameFromIndexL( TInt aIndex ) const; - - /** - * Returns provider information referenced by index. - * - * @since S60 v3.2 - * @param aIndex Provider list index. - * @return Pointer to provider SIS URL. - */ - IMPORT_C const TPtrC8 ProviderSisUrlFromIndexL( TInt aIndex ) const; - - /** - * Returns provider information referenced by index. - * - * @since S60 v3.2 - * @param aIndex Provider list index. - * @return Pointer to provider activation URL. - */ - IMPORT_C const TPtrC8 ProviderActivationUrlFromIndexL( - TInt aIndex ) const; - - /** - * Returns provider information referenced by index. - * - * @since S60 v3.2 - * @param aIndex Provider list index. - * @return pointer Provider creation urlURL. - */ - IMPORT_C const TPtrC8 ProviderCreationUrlFromIndexL( - TInt aIndex ) const; - - /** - * Returns provider information referenced by index. - * - * @since S60 v3.2 - * @param aIndex Provider list index. - * @return Pointer to provider description. - */ - IMPORT_C const TPtrC ProviderDescriptionFromIndexL( - TInt aIndex ) const; - - /** - * Returns provider information referenced by index. - * - * @since S60 v3.2 - * @param aIndex Provider list index. - * @return Pointer to provider Type. - */ - IMPORT_C const TPtrC ProviderTypeFromIndexL( TInt aIndex ) const; - - /** - * Returns provider icon URL referenced by index. - * - * @since S60 v3.2 - * @param aIndex Provider list index - * @return Pointer to provider icon URL. - */ - IMPORT_C const TPtrC8 ProviderIconUrlFromIndexL( TInt aIndex ) const; - - /** - * Returns provider bitmap referenced by index. - * - * @since S60 v3.2 - * @param aIndex Provider list index. - * @return Pointer to bitmap owned by provider. - */ - IMPORT_C void ProviderBitmapsFromIndexL( TInt aIndex, - CFbsBitmap*& aBitmap, CFbsBitmap*& aMask ) const; - - /** - * Stores active list index in provider list view to member data. - * - * @since S60 v3.2 - * @param aIndex Index to be stored. - */ - IMPORT_C void SaveActiveIndex( TInt aIndex ); - - /** - * Returns active list index from member data. - * - * @since S60 v3.2 - * @return Active list index in provider list view. - */ - IMPORT_C TInt ActiveIndex() const; - - /** - * Fetches the needed parameters for provisioning. - * - * @since S60 v3.2 - * @param aUrl for URL. - */ - IMPORT_C void FetchParametersL( TDes& aUrl ); - - /** - * Cancels ongoing HTTP request. - * - * @since S60 v3.2 - */ - IMPORT_C void CancelHttpRequest(); - - /** - * Starts downloading action (wbxml) file from the server. - * - * @since S60 v3.2 - * @param aUrl URL of the action file. - */ - IMPORT_C void FetchActionFileL( const TDesC8& aUrl ); - - /** - * Gets session id that was received from the server. - * - * @since S60 v3.2 - * @return Session id descriptor. - */ - IMPORT_C const TDesC8& SessionId(); - -// from base class MAcpXmlHandlerObserver - - /** - * From MAcpXmlHandlerObserver. - * Notifies observer when parsing is completed. - * - * @since S60 v3.2 - * @param aError System wide error code. - */ - IMPORT_C void NotifyParsingCompleted( TInt aError ); - - /** - * From MAcpXmlHandlerObserver. - * Notifies when new provider is available. - * - * @since S60 v3.2 - * @param aError System wide error code. - */ - IMPORT_C void NotifyParsedProviderL( const CAcpProvider& aProvider ); - -// from base class MAcpHttpHandlerObserver - - /** - * From MAcpHttpHandlerObserver. - * Notifies observer about HTTP events. - * - * @since S60 v3.2 - * @param aEvent HTTP event. - */ - void NotifyHttpEvent( TInt aEvent ); - - /** - * From MAcpHttpHandlerObserver. - * Notifies observer about HTTP event errors. - * - * @since S60 v3.2 - * @param aError HTTP event error. - */ - void NotifyHttpError( TInt aError ); - - /** - * From MAcpHttpHandlerObserver. - * Notifies observer about received body. - * - * @since S60 v3.2 - * @param aBodyData Body data. - */ - void NotifyBodyReceived( const TDesC8& aBodyData ); - - /** - * From MAcpHttpHandlerObserver. - * Notifies observer about received header. - * - * @since S60 v3.2 - * @param aContentType Content data. - */ - void NotifyContentTypeReceived( const TDesC8& aBodyData ); - - /** - * From MAcpHttpHandlerObserver. - * Notifies observer about received session id. - * - * @since S60 v3.2 - * @param aSession Id Session id received from the server. - */ - void NotifySessionIdReceivedL( const TDesC8& aSessionId ); - -// from base class MImageHandlerObserver - - /** - * From MImageHandlerObserver. - * Notifies completion of image handling. - * - * @since S60 v3.2 - * @param aErr Error code. - */ - void NotifyImageCompletion( TInt aErr ); - -private: - - CAcpController( MAcpControllerObserver& aObserver ); - void ConstructL(); - - /** - * Creates XML file from received data. - * - * @since S60 v3.2 - * @param aFilename File to be created. - */ - void CreateFileFromDataL( const TDesC& aFilename ); - - /** - * Parses received action file for wbxml content and sends it to - * provisioning engine. - * - * @since S60 v3.2 - */ - void HandleActionFileL(); - - /** - * Returns next index with an icon URL in the providers list. - * - * @since S60 v3.2 - * - * @param aResultUrl On return points to the icon URL if found. - * @return TInt Index in the providers list or KErrNotFound. - */ - TInt NextIndexWithIconUrl( TPtrC8& aResultUrl ); - - /** - * Parses a specific header value from head wrapper format. - * - * @since S60 v3.2 - * @param aHeaders Descriptor containing the headers. - * @param aParam Parameter to be parsed. - * @return Parameter value part of the header. - */ - TPtrC8 GetHeaderParamL( const TDesC8& aHeaders, const TDesC8& aParam ); - - /** - * From MSIPProfileRegistryObserver. - * SIP profile information event. - * - * @since S60 v3.2 - * @param aProfileId is id for profile - * @param aEvent type of information event - */ - void ProfileRegistryEventOccurred( - TUint32 aSIPProfileId, - TEvent aEvent ); - - /** - * From MSIPProfileRegistryObserver. - * An asynchronous error has occurred related to SIP profile. - * - * @since S60 v3.2 - * @param aSIPProfileId the id of failed profile - * @param aError a error code - */ - void ProfileRegistryErrorOccurred( - TUint32 aSIPProfileId, - TInt aError ); - -private: // data - - /** - * Reference for contoller observer. - */ - MAcpControllerObserver& iObserver; - - /** - * Handle to XML parser. - * Own. - */ - CAcpXmlHandler* iParser; - - /** - * Handle to HTTP handler. - * Own. - */ - CAcpHttpHandler* iHttpHandler; - - /** - * Array for providers. - * Own. - */ - RPointerArray iProviders; - - /** - * Active list index, updated when provider specific view is opened. - */ - TInt iActiveIndex; - - /** - * Data fetched from network. - * Own. - */ - HBufC8* iData; - - /** - * Type of data fetched from network. - */ - TFetchTypes iType; - - /** - * File server. - */ - RFs iFs; - - /** - * Name of the file. - */ - TBuf iFilename; - - /** - * Handler for PnPMS parameters. - */ - CACPBrowserParams* iPnpmsparams; - - /** - * Provides the image convertions. - * Own. - */ - CAcpImageHandler* iImageHandler; - - /** - * Session id to be used for all transactions. - */ - HBufC8* iSessionId; - - /** - * For getting SIP events. - */ - CSIPManagedProfileRegistry* iSipModel; - - /** - * A flag telling if the previous download attempt failed. - * If it's ETrue, a new connection method is asked during the - * next download. - */ - TBool iErrorDownloading; - - /** - * A flag telling if sis packet is downoloaded and sis installation - * will be made. - */ - TBool iSisInstallation; - - /** - * File write stream for SIS file downloading. - */ - RFileWriteStream iWs; - - // For unit testing. -#ifdef _DEBUG - friend class T_CAcpController; -#endif - }; - -#endif // ACPCONTROLLER_H - -// End of file.