diff -r 000000000000 -r 1bce908db942 natplugins/natpcliprovisioningnatfwadapter/inc/natfwtraversaladapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/natplugins/natpcliprovisioningnatfwadapter/inc/natfwtraversaladapter.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,351 @@ +/* +* Copyright (c) 2006 - 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: Main implementation of NAT/FW Traversal adapter +* +*/ + + +#ifndef CNATFWTRAVERSALADAPTER_H +#define CNATFWTRAVERSALADAPTER_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS +class CWPCharacteristic; +class CNATFWDomainSpecificItem; +class CNATFWIAPSpecificItem; +class CWPNATFWItem; +class CWPStunServerItem; +class CWPTurnServerItem; + +/** +* Main implementation of NAT/FW Traversal adapter +* @since S60 v3.1 +*/ +class CNATFWTraversalAdapter : public CWPAdapter, public MWPContextExtension + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CNATFWTraversalAdapter* NewL(); + + /** + * Destructor. + */ + virtual ~CNATFWTraversalAdapter(); + + public: // Methods from base classes + + /** + * From CWPAdapter + * @since Series60 3.1. + * Returns the number of the summary lines to be shown in + * BIO control. + * @return Quantity of items (NAT/FW settings items). + */ + TInt ItemCount() const; + + /** + * From CWPAdapter + * @since S60 v3.1. + * Getter for the summary text of the NAT/FW item (NAT/FW settings) + * located in the array. Text is shown to the user in + * opened configuration message. + * @param aIndex. Location of the NAT/FW item. + * @return Summary title. + */ + const TDesC16& SummaryTitle( TInt aIndex ) const; + + /** + * From CWPAdapter + * @since S60 v3.1. + * Getter for the summary text of the NAT/FW item + * located in the array. Text is shown to the user in + * opened configuration message. + * @param aIndex. Location of the NAT/FW item. + * @return Summary text. + */ + const TDesC16& SummaryText( TInt aIndex ) const; + + /** + * From CWPAdapter + * @since S60 v3.1. + * Saves NAT/FW item (NAT/FW settings) located in array. + * @param aIndex. Location of the NAT/FW item to be saved. + */ + void SaveL( TInt aIndex ); + + /** + * From CWPAdapter + * @since S60 v3.1. + * Query if the NAT/FW item on place pointed by parameter can + * be set as default. + * @param aIndex. Location of the NAT/FW item to be queried. + * @return TBool. + */ + TBool CanSetAsDefault( TInt aIndex ) const; + + /** + * From CWPAdapter + * @since S60 v3.1. + * Sets the NAT/FW item on place pointed by parameter as default. + * @param aIndex. Location of the NAT/FW item to be queried. + */ + void SetAsDefaultL( TInt aIndex ); + + /** + * From CWPAdapter + * @since S60 v3.1. + * Query for the detail information about the NAT/FW settings. + * MWPPairVisitor is used for retrieving the details of a single + * setting entry. This is not supported feature as in the other + * adapters in the framework. + * @param aItem. + * @param aVisitor. + * @return TInt. + */ + TInt DetailsL( TInt aItem, MWPPairVisitor& aVisitor ); + + /** + * From MWPVisitor + * @since S60 v3.1. + * Visit method. Visits the adapter. Adapter then checks from the + * aCharacteristic if the data is targetet to it and acts according to + * that. + * @param aCharacteristic. + */ + void VisitL( CWPCharacteristic& aCharacteristic ); + + /** + * From MWPVisitor + * @since S60 v3.1. + * Visit method. Visits the adapter. Method set the iAppId value. + * @param aParameter. + */ + void VisitL( CWPParameter& aParameter ); + + /** + * From MWPVisitor + * @since S60 v3.1. + * Visit method. Visits the adapter. Adapter checks from the + * aParameter if the link is targetet to it and acts according to + * that. IAP bound to the NAT/FW access point specific settings is + * handled with help of this method. + * @param aParameter. + */ + void VisitLinkL( CWPCharacteristic& aLink ); + + /** + * From CWPAdapter + * Informs the adapters of the saved settings. + * @since S60 v3.1. + * @param aAppIdOfSavingItem. UID of the adapter component. + * @param aAppRef. APPREF of the saved settings. + * @param aStorageIdValue. Value that identifies the settings in + * its storage. + * @param aIsLastOfItsType. If the settings saved is the last of + * its kind, the value of the parameter is ETrue (or 1, because + * the TBool type does not work correctly via interface class + * definition (based on information from MVC documentation). + */ + void SettingsSavedL ( const TDesC8& aAppIdOfSavingItem, + const TDesC8& aAppRef, const TDesC8& aStorageIdValue ); + + /** + * From CWPAdapter + * @since S60 v3.1. + * Lets the adapters know when the saving has been finalized in + * viewpoint of the provisioning framework. The adapters can make + * finalization of saving the settings after receiving this call. + */ + void SavingFinalizedL(); + + /** + * From CWPAdapter + * @since S60 v3.1. + * Gets the saving information from the adapter that has saved settings. + * @param aIndex. Index of the previously saved item. + * @param aSavingInfo. + * @param aIsLastOfItsType. Adapter can tell to the framework if + * the saved item was the last one of its type. + */ + void GetSavingInfoL( TInt aIndex, RPointerArray &aSavingInfo ); + + /** + * From MWPContextExtension. + * Returns a pointer to a context extension. + * @param aExtension Contains a pointer to MWPContextExtension if supported + * @return KErrNotSupported if not supported, KErrNone otherwise + */ + TInt ContextExtension( MWPContextExtension*& aExtension ); + + /** + * From MWPContextExtension. + * Returns the data used for saving. + * @param aIndex The index of the data + * @return The data. Ownership is transferred. + */ + const TDesC8& SaveDataL( TInt aIndex ) const; + + /** + * From CWPAdapter + * Deletes a saved item. + * @since S60 v3.1. + * @param aSaveData The data used for saving + */ + void DeleteL( const TDesC8& aSaveData ); + + /** + * Returns the UID of the adapter. + * @return UID + */ + TUint32 Uid() const; + + /** + * Converts descriptor to TInt. + * @param aDes Value to be converted. + * @return Converted value. + */ + TInt DesToInt( const TDesC8& aDes ); + + /** + * Converts descriptor to TUint + * @param aDes Value to be converted. + * @return Converted value. + */ + TUint DesToTUint( const TDesC8& aDes ); + + private: + + /** + * C++ default constructor. + */ + CNATFWTraversalAdapter(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Gets IAP ID according to WAP ID. + * @since S60 3.2 + * @param aWapId WAP ID of access point. + * @return IAP ID of access point + */ + TUint32 IapIdFromWapIdL( TUint32 aWapId ); + + private: // Data + + /** + * Current NATFW domain specific data. Ownership is transferred to + * CWPNATFWItem. + * Not own. + */ + CNATFWDomainSpecificItem* iCurrentDomainItem; + + /** + * Current NATFW iap specific data. Ownership is transferred to + * CWPNATFWItem. + * Not own. + */ + CNATFWIAPSpecificItem* iCurrentIapItem; + + /** + * Current NATFW item setting data. + * Own. + */ + CWPNATFWItem* iCurrentNATFWItem; + + /** + * The application id of the current characteristic. + * Not own. + */ + TPtrC iAppID; + + /** + * Default name for NAT/FW settings. Value is read from the resource file. + * Own. + */ + HBufC* iDefaultName; + + /** + * Title for NAT/FW settings. Value is read from the resource file. + * Own. + */ + HBufC* iTitle; + + /** + * Holds the received NAT/FW item data. + * Own. + */ + RPointerArray iDatas; + + /** + * For telling whether it is OK to set NW parameters. + */ + TBool iCharacteristicNw; + + /** + * For telling whether it is OK to set ICE parameters. + */ + TBool iCharacteristicIce; + + /** + * For telling whether it is OK to set TURN parameters. + */ + TBool iCharacteristicTurn; + + /** + * For telling whether it is OK to set NATIAP parameters. + */ + TBool iCharacteristicNatIap; + + /** + * For telling whether it is OK to set TURNSERVER parameters. + */ + TBool iCharacteristicTurnServer; + + /** + * For telling whether it is OK to set ADDITIONALSTUN parameters. + */ + TBool iCharacteristicAdditionalStun; + + /** + * Current STUN server item. Ownership is transferred to + * CWPNATFWDomainSpecificItem. + * Not own. + */ + CWPStunServerItem* iCurrentStunServer; + + /** + * Current TURN server item. Ownership is transferred to + * CWPNATFWDomainSpecificItem. + * Not own. + */ + CWPTurnServerItem* iCurrentTurnServer; + + /** + * For EUnit testing. Uncomment when running tests. + */ + //friend class T_NATFWTraversalAdapter; + }; + +#endif // CNATFWTRAVERSALADAPTER_H + +// End of File