diff -r f742655b05bf -r d38647835c2e voipplugins/voipadapters/provisioningfile/inc/WPProtocolProfileHandlerSIP.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/voipplugins/voipadapters/provisioningfile/inc/WPProtocolProfileHandlerSIP.h Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,179 @@ +/* +* Copyright (c) 2006 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: Interface to SIP profiles. +* +*/ + + +#ifndef WPPROTOCOLPROFILEHANDLERSIP_H +#define WPPROTOCOLPROFILEHANDLERSIP_H + +// INCLUDES +#include +#include +#include + +// FORWARD DECLARATIONS +class CSIP; +class CSIPProfile; +class CSIPProfileRegistry; +class CSIPManagedProfile; + +// CLASS DECLARATION + +/** +* Interface to SIP profiles. +* +* @lib ProvisioningFile.lib +* @since Series 60 3.0 +*/ +NONSHARABLE_CLASS(CWPProtocolProfileHandlerSIP) : public CBase, + public MSIPObserver, + public MSIPProfileRegistryObserver + { + +#ifdef PROVISIONINGFILE_TEST + + friend class UT_ProvisioningFile; + friend class UT_ProtocolProvider; + +#endif + + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CWPProtocolProfileHandlerSIP* NewL(); + + /** + * Two-phased constructor. + */ + static CWPProtocolProfileHandlerSIP* NewLC(); + + /** + * Destructor. + */ + virtual ~CWPProtocolProfileHandlerSIP(); + + private: + + /** + * Find SIP profile from array by profile id. + * @since Series 60 3.0 + * @param aProfileId Profile id to search for + * @param aIndex On completion, contains index of profile. + * @return Pointer to SIP profile + */ + CSIPProfile* FindSIPProfileByIdL( TUint32 aProfileId, + TInt& aIndex ); + + public: + + /** + * Set Protocol Profile use this IAP. + * @since Series 60 3.0 + * @param aProfileId Protocol Profiles array place. + * @param aProfileIapId Profiles new IAP Id. + */ + void SetProfilesIapL( TInt aProfileId, + TUint32 aProfileIapId ); + + /** + * Set provisioning Protocol Profiles Id in array. + * @since Series 60 3.0 + */ + void SetProvisioningIdL(); + + /** + * Get provisioned Protocol Profiles count. + * @since Series 60 3.0 + * @return TInt count of provisioned profiles. + */ + TInt ProvisionedCount(); + + public: // Functions from base classes + + /** + * From MSIPObserver + * A SIP request has been received from the network. + * @pre aTransaction != 0 + * @param aIapId The IapId from which the SIP request was received. + * @param aTransaction contains local address, remote address of a SIP + * message, as well as optional SIP message method, headers and + * body. The ownership is transferred. + */ + void IncomingRequest( TUint32 aIapId, + CSIPServerTransaction* aTransaction ); + + /** + * From MSIPObserver + * The received SIP request time-outed and it is invalid i.e. cannot be used + * anymore. + * This will be called if the user fails to create a SIP connection + * and does not send an appropriate SIP response. + * @param aTransaction The time-outed transaction. + */ + void TimedOut( CSIPServerTransaction& aTransaction ); + + /** + * From MSIPProfileRegistryObserver + * An event related to SIP Profile has accorred + * @param aProfileId a profile Id + * @param aEvent an occurred event + **/ + void ProfileRegistryEventOccurred( TUint32 aProfileId, + MSIPProfileRegistryObserver::TEvent aEvent ); + + /** + * From MSIPProfileRegistryObserver + * An asynchronous error has occurred related to SIP profile + * Event is send to those observers, who have the + * corresponding profile instantiated. + * @param aProfileId the id of failed profile + * @param aError an occurred error + */ + void ProfileRegistryErrorOccurred( TUint32 aProfileId, + TInt aError ); + + private: + + /** + * C++ default constructor. + */ + CWPProtocolProfileHandlerSIP(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Data + + // SIP objects. + CSIP* iSIP; + + CSIPProfileRegistry* iSIPProfileRegistry; + + // Array of SIP profile instances + RPointerArray iSIPProfiles; + + // Array of SIP profile ids + RArray iSIPProfileIds; + + }; + +#endif // WPPROTOCOLPROFILEHANDLERSIP_H + +// End of File