callcontinuity/vccclientprovisioningadapter/inc/wpvccadapter.h
branchRCL_3
changeset 22 d38647835c2e
parent 0 a4daefaec16c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/callcontinuity/vccclientprovisioningadapter/inc/wpvccadapter.h	Wed Sep 01 12:29:57 2010 +0100
@@ -0,0 +1,249 @@
+/*
+* Copyright (c) 2007-2008 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:   Handles Vcc settings in provisioning.
+*
+*/
+
+
+
+#ifndef C_WPVCCADAPTER_H
+#define C_WPVCCADAPTER_H
+
+#include <CWPAdapter.h>
+#include <MWPContextExtension.h>
+
+#include "vccunittesting.h"
+#include <sipprofileregistryobserver.h>
+
+class CWPCharacteristic;
+class CVccSPSettings;
+
+/**
+ * CVccAdapter handles Vcc settings received via provisioning framework.
+ *
+ * CVccAdapter is a plugin for provisioning framework. It indicates to
+ * framwork that it is interested in Vcc settings, and when they're
+ * available CVccAdapter stores them into instance of CVccItem.
+ *
+ * @lib wpvccadapter
+ * @since S60 3.2
+ */
+class CWPVccAdapter : public CWPAdapter, public MWPContextExtension, public MSIPProfileRegistryObserver
+    {
+
+public:
+    
+    /**
+    * Symbian OS two-phased constructor
+    */
+    static CWPVccAdapter* NewL();
+
+    /**
+    * Destructor.
+    */
+    virtual ~CWPVccAdapter();
+
+// from base class CWPAdapter
+
+    /**
+     * @see CWPAdapter::ItemCount()
+     */
+    TInt ItemCount() const;
+
+    /**
+     * @see CWPAdapter::SummaryTitle()
+     */
+    const TDesC16& SummaryTitle( TInt aIndex ) const;
+
+    /**
+     * @see CWPAdapter::SummaryText()
+     */
+    const TDesC16& SummaryText( TInt aIndex ) const;
+
+    /**
+     * @see CWPAdapter::SaveL()
+     */
+    void SaveL( TInt aIndex );
+
+    /**
+     * @see CWPAdapter::CanSetAsDefault()
+     */
+    TBool CanSetAsDefault( TInt aIndex ) const;
+
+    /**
+     * @see CWPAdapter::SetAsDefaultL()
+     */
+    void SetAsDefaultL( TInt aIndex );
+
+    /**
+     * @see CWPAdapter::DetailsL()
+     */
+    TInt DetailsL( TInt aItem, MWPPairVisitor& aVisitor );
+
+    /**
+     * @see CWPAdapter::ContextExtension()
+     */
+    TInt ContextExtension( MWPContextExtension*& aExtension );
+
+    /**
+     * @see CWPAdapter::SettingsSavedL()
+     */
+    void SettingsSavedL(const TDesC8& aAppIdOfSavingItem,
+                        const TDesC8& aAppRef, 
+                        const TDesC8& aStorageIdValue);
+    
+// From base class MWPVisitor
+    
+    /**
+     * @see MWPVisitor::VisitL()
+     */
+    void VisitL( CWPCharacteristic& aCharacteristic );
+    
+    /**
+     * @see MWPVisitor::SavingFinalizedL()
+     */
+    void SavingFinalizedL();
+
+
+    /**
+     * @see MWPVisitor::VisitL()
+     */
+    void VisitL( CWPParameter& aParameter );
+
+    /**
+     * @see MWPVisitor:VisitLinkL()
+     */
+    void  VisitLinkL( CWPCharacteristic& aLink );
+
+// from base class MWPContextExtension
+    
+    /**
+     * @see MWPContextExtension::SaveDataL()
+     */
+    const TDesC8& SaveDataL( TInt aIndex ) const;
+
+    /**
+     * @see MWPContextExtension::DeleteL()
+     */
+    void DeleteL( const TDesC8& aSaveData );
+
+    /**
+     * @see MWPContextExtension::Uid()
+     */
+    TUint32 Uid() const;
+  
+    /** 
+    * From MSIPProfileRegistryObserver
+    * SIP profile information event.
+    *
+    * @since S60 v3.1
+    * @param aSIPProfileId id for profile
+    * @param aEvent type of information event
+    */
+     void ProfileRegistryEventOccurred(TUint32 aProfileId,
+                                              TEvent aEvent);
+     /**
+     * From MSIPProfileRegistryObserver
+     * An asynchronous error has occurred related to SIP profile.
+     *
+     * @since S60 v3.1
+     * @param aSIPProfileId the id of failed profile
+     * @param aError a error code
+     * @return none
+     */
+     void ProfileRegistryErrorOccurred(TUint32 aProfileId,
+                                              TInt aError);
+      
+private:
+
+    /**
+    * C++ constructor 
+    */
+    CWPVccAdapter();
+    
+    /**
+    * Symbian 2nd phase constructor
+    */
+    void ConstructL();
+
+    /**
+    * Remove old VCC related settings if found
+    */
+    void RemoveVCCSettingsL();
+    
+    /**
+    * Remove VCC enabled VoIP network destination from snaplist
+    */
+    void RemoveNetworkDestinationL();
+
+private: // data
+
+    /**
+     * The application id of the current characteristic
+     * Own
+     */
+    HBufC* iAppID;
+
+    /**
+     * Title for the Vcc settings.
+     * Own.
+     */
+    HBufC*  iTitle;
+
+    /**
+     * Holds the value of the current characteristic type (state).
+     */
+    TUint iCurrentCharacteristic;
+
+    /**
+     * Type of the current characteristics
+     */
+    TInt iCurrentCharacteristicType;
+    
+    /**
+     * Application references
+     * Own
+     */
+    RArray<TPtrC> iToAppReferences;
+    
+    /**
+     * Item that saves the provisioned settings
+     * Own
+     */
+    CVccSPSettings* iVccItem;
+    
+    /**
+     * Item that saves the provisioned settings
+     * Own
+     */
+    CVccSPSettings* iNewVccItem;
+
+    /**
+     * RCSE Profile ID
+     * Own
+     */
+    TUint iVoipProfileId;
+    
+     /**
+     * Old VCC enabled VoIP service name
+     * needed for deleting network destination before saving new VCC enabled VoIP service
+     */
+    TBuf<200> iOldVoipServiceName;
+    
+    
+    
+    VCC_UNITTEST( T_WpVccAdapter )
+    };
+
+#endif	// C_WPVCCADAPTER_H