voipplugins/voipadapters/provisioningfile/inc/WPProtocolProfileHandlerSIP.h
changeset 0 a4daefaec16c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/voipplugins/voipadapters/provisioningfile/inc/WPProtocolProfileHandlerSIP.h	Mon Jan 18 20:12:36 2010 +0200
@@ -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    <e32base.h>
+#include    <sipobserver.h>
+#include    <sipprofileregistryobserver.h>
+
+// 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<CSIPProfile>  iSIPProfiles;
+        
+        // Array of SIP profile ids
+        RArray<TInt32>              iSIPProfileIds;
+
+    };
+
+#endif // WPPROTOCOLPROFILEHANDLERSIP_H   
+            
+// End of File