omacpadapters/cpdestinationnwadapter/inc/cwpdestinationnwitem.h
changeset 67 fdbfe0a95492
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omacpadapters/cpdestinationnwadapter/inc/cwpdestinationnwitem.h	Fri Oct 15 11:39:02 2010 +0530
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2007 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:   Settings item for one destination network. Also handles
+*                saving destination networks to permanent storage.
+*
+*/
+
+
+
+#ifndef CWPDESTINATIONNWITEM_H
+#define CWPDESTINATIONNWITEM_H
+
+#include <e32base.h>
+#include <cmmanagerext.h>
+
+class CWPCharacteristic;
+
+/**
+ *  Destination network settings item.
+ *
+ *  Destination network item handles saving destination networks via
+ *  Connection Method Manager API.
+ *
+ *  @lib cwpdestinationnwadapter.lib
+ *  @since S60 v3.2.
+ */
+class CWPDestinationNwItem : public CBase
+    {
+    /**
+     * Friend classes for unit testing - uncomment when running tests.
+     */
+    //friend class UT_wpdestinationnwadapter;
+
+public:
+
+    static CWPDestinationNwItem* NewL();
+
+    virtual ~CWPDestinationNwItem();
+
+    /**
+     * Setter for APPREF.
+     * @since S60 v3.2.
+     * @param aAPPREF.
+     */
+    void SetAppRefL( const TDesC8& aAppRef );
+
+    /**
+     * Setter for user viewable name of the setting.
+     * @since S60 v3.2.
+     * @param aNAME. Value is TCP or UDP.
+     */
+    void SetSettingsNameL( const TDesC& aSettingsName );
+
+    /**
+     * Setter for NAPDEF (IAP settings).
+     * @since S60 v3.2.
+     * @param aNapDef.
+     */
+    void AddNapDefL( CWPCharacteristic* aNapDef );
+
+    /**
+     * Getter for APPREF value.
+     * @since S60 v3.2.
+     * @return APPREF.
+     */
+    const TDesC8& AppRef() const;
+
+    /**
+     * Getter for user viewable name of Destination network.
+     * @since S60 v3.2.
+     * @return Settings name.
+     */
+    const TDesC& SettingsName() const;
+
+    /**
+     * Saves the destination network settings.
+     * @since S60 v3.2.
+     */
+    void SaveL();
+
+    /**
+     * Return destination network ID.
+     * @since S60 v3.2.
+     * @return ID of the destination network.
+     */
+    const TDesC8& SaveData() const;
+
+private:
+
+    /**
+     * Creates a network destination.
+     * @since S60 v3.2.
+     * @param aCmManager Connection Method Manager handle.
+     * @return Network destination.
+     */
+    RCmDestinationExt CreateDestinationL( RCmManagerExt& aCmManager );
+
+		/**
+     * Returnes the Iap id that matches the given Wap id.
+     * @since S60 v3.2.3
+     * @param aWapId IAP's Wap Id.
+     * @return Iap Id.
+     */
+		TUint32 IapIdFromWapIdL( TUint32 aWapId );
+		
+private:
+
+    void ConstructL();
+    CWPDestinationNwItem();
+
+private: // data
+
+    /**
+     * Destination network reference identity in provisioning document.
+     * Own.
+     */
+    HBufC8* iAppRef;
+
+    /**
+     * Name of destination network visible to user when viewing the
+     * provisioning message.
+     * Own.
+     */
+    HBufC* iSettingsName;
+
+    /**
+     * Array of NAPDEFs, IAP settings.
+     * Not own. (Contained pointers are deleted by ProvisioningEngine.)
+     */
+    RPointerArray<CWPCharacteristic> iNapDefs;
+
+    /**
+     * ID value of the referred IAP.
+     */
+    TUint32 iIAPId;
+
+    /** 
+     * Destination network ID as a descriptor to be returned by the
+     * SaveData method to the framework via adapters SaveDataL.
+     * Own.
+     */
+    HBufC8* iSavedProfileId;
+
+    };
+
+#endif // CWPDESTINATIONNWITEM_H