natplugins/natpdevmgmtnatfwadapter/inc/natfwdomainentry.h
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/natplugins/natpdevmgmtnatfwadapter/inc/natfwdomainentry.h	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,838 @@
+/*
+* Copyright (c) 2005-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:  Device Management NAT-FW Traversal domain specific settings
+*
+*/
+
+
+//  INCLUDES
+#include <e32base.h>
+
+
+/*
+* CNATFWDomainEntry
+* Buffer class for holding domain specific NAT/FW settings
+*/
+class CNATFWDomainEntry : public CBase
+    {
+    public:  // Constructors and destructor
+
+        static CNATFWDomainEntry* NewL();
+        static CNATFWDomainEntry* NewLC();
+        virtual ~CNATFWDomainEntry();
+
+    private:
+
+        CNATFWDomainEntry();
+        void ConstructL();
+
+    public: // New methods
+
+        /**
+         * Setter for DomainKey.
+         * @since Series 60_3.1
+         * @param aDomainKey value to set. Key for domain table in CenRep.
+         */
+        void SetDomainKey( TUint32 aDomainKey );
+
+        /**
+         * Setter for Domain.
+         * @since Series 60_3.1
+         * @param aDomain value to set.
+         */
+        void SetDomainL( const TDesC8& aDomain );
+
+        /**
+         * Setter for STUNServerAddr.
+         * @since Series 60_3.1
+         * @param aSTUNServerAddr value to set.
+         */
+        void SetSTUNServerAddrL( const TDesC8& aSTUNServerAddr );
+
+        /**
+         * Setter for STUNServerPort.
+         * @since Series 60_3.1
+         * @param aSTUNServerPort value to set.
+         */
+        void SetSTUNServerPort( TUint aSTUNServerPort );
+
+        /**
+         * Setter for NATRefreshTCP.
+         * @since Series 60_3.1
+         * @param aNATRefreshTCP value to set.
+         */
+        void SetNATRefreshTCP( TInt aNATRefreshTCP );
+
+        /**
+         * Setter for NATRefreshUDP.
+         * @since Series 60_3.1
+         * @param aNATRefreshUDP value to set.
+         */
+        void SetNATRefreshUDP( TInt aNATRefreshUDP );
+
+        /**
+         * Setter for CRLFRefresh.
+         * @since Series 60_3.1
+         * @param aEnableCRLFRefresh value to set.
+         */
+        void SetEnableCRLFRefresh( TInt aEnableCRLFRefresh );
+
+        /**
+         * Setter for STUNUsername.
+         * @since S60 3.2
+         * @param aSTUNUsername value to set.
+         */
+        void SetSTUNUsernameL( const TDesC8& aSTUNUsername );
+
+        /**        
+         * Setter for STUNPassword.
+         * @since S60 3.2
+         * @param aSTUNPassword value to set.
+         */
+        void SetSTUNPasswordL( const TDesC8& aSTUNPassword );
+
+        /**
+         * Add STUN server address.
+         * @since S60 3.2
+         * @param aStunSrvAddr STUN server address.
+         */
+        void AddStunSrvAddrL( const TDesC8& aStunSrvAddr );
+
+        /**
+         * Add STUN server port.
+         * @since S60 3.2
+         * @param aStunSrvPort STUN server port.
+         */
+        void AddStunSrvPortL( TInt aStunSrvPort );
+
+        /**
+         * Add STUN server username.
+         * @since S60 3.2
+         * @param aStunUsername STUN server username.
+         */
+        void AddStunUsernameL( const TDesC8& aStunUsername );
+
+        /**
+         * Add STUN server password.
+         * @since S60 3.2
+         * @param aStunPassword STUN server password.
+         */
+        void AddStunPasswordL( const TDesC8& aStunPassword );
+
+        /**
+         * Setter for DisableStunSharedSecret.
+         * @since S60 3.2
+         * @param aDisableStunSharedSecret Value to be set.
+         */
+        void SetDisableStunSharedSecret( TInt aDisableStunSharedSecret );
+
+        /**
+         * Setter for StartPortRange.
+         * @since S60 3.2
+         * @param aPortPoolStart value to set.
+         */
+        void SetStartPortRange( TInt aStartPortRange );
+
+        /**
+         * Setter for EndPortRange.
+         * @since S60 3.2
+         * @param aPortPoolEnd value to set.
+         */
+        void SetEndPortRange( TInt aEndPortRange );
+
+        /**
+         * Setter for UsedNATProtocol.
+         * @since S60 3.2
+         * @param aNatProtocol value to set.
+         */
+        void SetNatProtocolL( const TDesC8& aNatProtocol );
+
+        /**
+         * Setter for NATUtilities.
+         * @since S60 3.2
+         * @param aNatUtilities NAT utilities to be se.
+         */
+        void SetNatUtilitiesL( const TDesC8& aNatUtilities );
+
+        /**
+         * Getter for HostPreference.
+         * @since S60 3.2
+         * @param aHostPref Preference value to be set.
+         */
+        void SetHostPref( TInt aHostPref );
+
+        /**
+         * Getter for ServerReflexPreference.
+         * @since S60 3.2
+         * @param aServerReflexPref Preference value to be set.
+         */
+        void SetServerReflexPref( TInt aServerReflexPref );
+
+        /**
+         * Getter for RelayPreference.
+         * @since S60 3.2
+         * @param aRelayPref Preference value to be set.
+         */
+        void SetRelayPref( TInt aRelayPref );
+
+        /**
+         * Getter for PeerReflexPreference.
+         * @since S60 3.2
+         * @param aPeerReflexPref Preference value to be set.
+         */
+        void SetPeerReflexPref( TInt aPeerReflexPref );
+
+        /**
+         * Getter for IPv4Preference.
+         * @since S60 3.2
+         * @param aIPv4Pref Preference value to be set.
+         */
+        void SetIPv4Pref( TInt aIPv4Pref );
+
+        /**
+         * Getter for IPv6Preference.
+         * @since S60 3.2
+         * @param aIPv6Pref Preference value to be set.
+         */
+        void SetIPv6Pref( TInt aIPv6Pref );
+
+        /**
+         * Getter for VpnPreference.
+         * @since S60 3.2
+         * @param aVpnPref Preference value to be set.
+         */
+        void SetVpnPref( TInt aVpnPref );
+
+        /**
+         * Getter for UdpPreference.
+         * @since S60 3.2
+         * @param aUdpPref Preference value to be set.
+         */
+        void SetUdpPref( TInt aUdpPref );
+
+        /**
+         * Getter for TcpPreference.
+         * @since S60 3.2
+         * @param aTcpPref Preference value to be set.
+         */
+        void SetTcpPref( TInt aTcpPref );
+
+        /**
+         * Getter for TcpActivePreference.
+         * @since S60 3.2
+         * @param aTcpActivePref Preference value to be set.
+         */
+        void SetTcpActivePref( TInt aTcpActivePref );
+
+        /**
+         * Getter for TcpPassivePreference.
+         * @since S60 3.2
+         * @param aTcpPassivePref Preference value to be set.
+         */
+        void SetTcpPassivePref( TInt aTcpPassivePref );
+
+        /**
+         * Setter for TcpSimultPreference.
+         * @since S60 3.2
+         * @param aTcpSimultPref Preference value to be set.
+         */
+        void SetTcpSimultPref( TInt aTcpSimultPref );
+
+        /**
+         * Add TURN server address.
+         * @since S60 3.2
+         * @param aTurnSrvAddr TURN server address.
+         */
+        void AddTurnSrvAddrL( const TDesC8& aTurnSrvAddr );
+
+        /**
+         * Add TURN server port.
+         * @since S60 3.2
+         * @param aTurnSrvPort TURN server port.
+         */
+        void AddTurnSrvPortL( TInt aTurnSrvPort );
+
+        /**
+         * Add TURN server username.
+         * @since S60 3.2
+         * @param aTurnSrvAddr TURN server username.
+         */
+        void AddTurnUsernameL( const TDesC8& aTurnUsername );
+
+        /**
+         * Add TURN server password.
+         * @since S60 3.2
+         * @param aTurnPassword TURN server password.
+         */
+        void AddTurnPasswordL( const TDesC8& aTurnPassword );
+
+        /**
+         * Update STUNSrvAddr in array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @param aAddr New STUN server address.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt UpdateStunSrvAddrL( TInt aIndex, const TDesC8& aAddr );
+
+        /**
+         * Update STUNSrvPort in array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @param aPort New STUN server port.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt UpdateStunSrvPort( TInt aIndex, TInt aPort );
+
+        /**
+         * Update STUNUsername in array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @param aUsername New STUN server username.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt UpdateStunUsernameL( TInt aIndex, const TDesC8& aUsername );
+
+        /**
+         * Update STUNPassword in array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @param aPassword New STUN server password.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt UpdateStunPasswordL( TInt aIndex, const TDesC8& aPassword );
+
+        /**
+         * Update TURN server address in array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @param aAddr New TURN server address.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt UpdateTurnSrvAddrL( TInt aIndex, const TDesC8& aAddr );
+
+        /**
+         * Update TURN server port in array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @param aPort New TURN server port.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt UpdateTurnSrvPort( TInt aIndex, TInt aPort );
+
+        /**
+         * Update TURN server username in array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @param aUsername New TURN server username.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt UpdateTurnUsernameL( TInt aIndex, const TDesC8& aUsername );
+
+        /**
+         * Update TURN server password in array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @param aPassword New TURN server password.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt UpdateTurnPasswordL( TInt aIndex, const TDesC8& aUsername );
+
+        /**
+         * Remove STUNSrvAddr from array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt RemoveStunSrvAddr( TInt aIndex );
+
+        /**
+         * Remove STUNSrvPort from array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt RemoveStunSrvPort( TInt aIndex );
+
+        /**
+         * Remove STUNUsername from array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt RemoveStunUsername( TInt aIndex );
+
+        /**
+         * Remove STUNPassword from array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt RemoveStunPassword( TInt aIndex );
+
+        /**
+         * Remove TURN server address from array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt RemoveTurnSrvAddr( TInt aIndex );
+
+        /**
+         * Remove TURN server port from array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt RemoveTurnSrvPort( TInt aIndex );
+
+        /**
+         * Remove TURN server username from array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt RemoveTurnUsername( TInt aIndex );
+
+        /**
+         * Remove TURN server password from array.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return KErrNone if successful,
+         *         KErrArgument if aIndex negative or too big.
+         */
+        TInt RemoveTurnPassword( TInt aIndex );
+
+        /**
+         * Getter for DomainKey.
+         * @since Series 60_3.1
+         * @return TUint32. Key for domain table in CenRep.
+         */
+        TUint32 GetDomainKey() const;
+
+        /**
+         * Getter for Domain.
+         * @since Series 60_3.1
+         * @return TDesC8.
+         */
+        const TDesC8& GetDomain() const;
+
+        /**
+         * Getter for STUNServerAddr.
+         * @since Series 60_3.1
+         * @return TDesC8.
+         */           
+        const TDesC8& GetSTUNAddr() const;
+
+        /**
+         * Getter for STUNServerPort.
+         * @since Series 60_3.1
+         * @return TUint.
+         */     
+        TInt GetSTUNPort() const;
+
+        /**
+         * Getter for NATRefreshTCP.
+         * @since Series 60_3.1
+         * @return TInt.
+         */
+        TInt GetNATRefreshTCP() const;
+
+        /**
+         * Getter for NATRefreshUDP.
+         * @since Series 60_3.1
+         * @return TInt.
+         */
+        TInt GetNATRefreshUDP() const;
+
+        /**
+         * Getter for aCRLFRefresh.
+         * @since Series 60_3.1
+         * @return TInt.
+         */
+        TInt GetEnableCRLFRefresh() const;
+
+        /**
+         * Getter for STUNUsername.
+         * @since S60 3.2
+         * @return TDesC8.
+         */           
+        const TDesC8& GetSTUNUsername() const;
+
+        /**
+         * Getter for STUNPassword.
+         * @since S60 3.2
+         * @return TDesC8.
+         */           
+        const TDesC8& GetSTUNPassword() const;
+
+        /**
+         * Getter for a specific STUN server address.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return STUN server address or "NotSet" if aIndex out of bounds.
+         */
+        const TDesC8& StunSrvAddrL( TInt aIndex ) const;
+
+        /**
+         * Getter for a specific STUN server port.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return STUN server port or KErrNotFound if aIndex out of bounds.
+         */
+        TInt StunSrvPort( TInt aIndex ) const;
+
+        /**
+         * Getter for a specific STUN server username.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return STUN server username or "NotSet" if aIndex out of bounds.
+         */
+        const TDesC8& StunUsernameL( TInt aIndex ) const;
+
+        /**
+         * Getter for a specific STUN server password.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return STUN server password or "NotSet" if aIndex out of bounds.
+         */
+        const TDesC8& StunPasswordL( TInt aIndex ) const;
+
+        /**
+         * Getter for DisableStunSharedSecret.
+         * @since S60 3.2
+         * @return Value for STUN_SHARED_SECRET.
+         */           
+        TInt DisableStunSharedSecret() const;
+
+        /**
+         * Getter for StartPortRange.
+         * @since Series 60_3.1
+         * @return Start port of port pool.
+         */
+        TInt StartPortRange() const;
+
+        /**
+         * Getter for EndPortRange.
+         * @since S60 3.2
+         * @return End port of port pool.
+         */
+        TInt EndPortRange() const;
+
+        /**
+         * Getter for UsedNATProtocol.
+         * @since S60 3.2
+         * @return Used NAT protocol.
+         */
+        const TDesC8& UsedNatProtocol() const;
+
+        /**
+         * Getter for NATUtilities.
+         * @since S60 3.2
+         * @return NAT utilities.
+         */
+        const TDesC8& NatUtilities () const;
+
+        /**
+         * Getter for HostPreference.
+         * @since S60 3.2
+         * @return HostPreference value.
+         */
+        TInt HostPref() const;
+
+        /**
+         * Getter for ServerReflexPreference.
+         * @since S60 3.2
+         * @return ServerReflexPreference value.
+         */
+        TInt ServerReflexPref() const;
+
+        /**
+         * Getter for RelayPreference.
+         * @since S60 3.2
+         * @return RelayPreference value.
+         */
+        TInt RelayPref() const;
+
+        /**
+         * Getter for PeerReflexPreference.
+         * @since S60 3.2
+         * @return PeerReflexPreference value.
+         */
+        TInt PeerReflexPref() const;
+
+        /**
+         * Getter for IPv4Preference.
+         * @since S60 3.2
+         * @return IPv4Preference value.
+         */
+        TInt IPv4Pref() const;
+
+        /**
+         * Getter for IPv6Preference.
+         * @since S60 3.2
+         * @return IPv6Preference value.
+         */
+        TInt IPv6Pref() const;
+
+        /**
+         * Getter for VpnPreference.
+         * @since S60 3.2
+         * @return VpnPreference value.
+         */
+        TInt VpnPref() const;
+
+        /**
+         * Getter for UdpPreference.
+         * @since S60 3.2
+         * @return UdpPreference value.
+         */
+        TInt UdpPref() const;
+
+        /**
+         * Getter for TcpPreference.
+         * @since S60 3.2
+         * @return TcpPreference value.
+         */
+        TInt TcpPref() const;
+
+        /**
+         * Getter for TcpActivePreference.
+         * @since S60 3.2
+         * @return TcpActivePreference value.
+         */
+        TInt TcpActivePref() const;
+
+        /**
+         * Getter for TcpPassivePreference.
+         * @since S60 3.2
+         * @return TcpPassivePreference value.
+         */
+        TInt TcpPassivePref() const;
+
+        /**
+         * Getter for TcpSimultPreference.
+         * @since S60 3.2
+         * @return TcpSimultPreference value.
+         */
+        TInt TcpSimultPref() const;
+
+        /**
+         * Getter for a specific TURN server address.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return TURN server address or "NotSet" if aIndex out of bounds.
+         */
+        const TDesC8& TurnSrvAddrL( TInt aIndex ) const;
+
+        /**
+         * Getter for a specific TURN server port.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return TURN server port or KErrNotFound if aIndex out of bounds.
+         */
+        TInt TurnSrvPort( TInt aIndex ) const;
+
+        /**
+         * Getter for a specific TURN server username.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return TURN server username or "NotSet" if aIndex out of bounds.
+         */
+        const TDesC8& TurnUsernameL( TInt aIndex ) const;
+
+        /**
+         * Getter for a specific TURN server password.
+         * @since S60 3.2
+         * @param aIndex Array index.
+         * @return TURN server password or "NotSet" if aIndex out of bounds.
+         */
+        const TDesC8& TurnPasswordL( TInt aIndex ) const;
+
+private: // Data
+
+        // Identifier of the codec.
+        TUint32 iDomainKey;
+
+        // Domain address
+        HBufC8* iDomain;
+
+        // STUN server addr
+        HBufC8* iSTUNServerAddr;
+
+        // STUN server port
+        TInt iSTUNServerPort;
+
+        // NAT refresh tcp
+        TInt iNATRefreshTCP;
+
+        // NAT refresh udp
+        TInt iNATRefreshUDP;
+
+        // CRLF refresh
+        TInt iEnableCRLFRefresh;
+
+        // STUN server username
+        HBufC8* iSTUNUsername;
+
+        // STUN server password
+        HBufC8* iSTUNPassword;
+
+        /**
+         * List of STUN server addresses.
+         */
+        RPointerArray<HBufC8> iStunSrvAddrArray;
+
+        /**
+         * List of STUN server ports.
+         */
+        RArray<TInt> iStunSrvPortArray;
+        
+        /**
+         * List of STUN server usernames.
+         */
+        RPointerArray<HBufC8> iStunUsernameArray;
+
+        /**
+         * List of STUN server passwords.
+         */
+        RPointerArray<HBufC8> iStunPasswordArray;
+
+        /**
+         * Whether to disable STUN shared secret mechanism.
+         */
+        TInt iDisableStunSharedSecret;
+
+        /**
+         * Start port of the port range.
+         */
+        TInt iStartPortRange;
+
+        /**
+         * End port of the port range.
+         */
+        TInt iEndPortRange;
+
+        /**
+         * Used NAT protocol.
+         * Own.
+         */
+        HBufC8* iUsedNatProtocol;
+
+        /**
+         * ICE: NAT Utilties.
+         * Own.
+         */
+        HBufC8* iNatUtilities;
+
+        /**
+         * ICE: Host preference
+         */
+        TInt iHostPref;
+
+        /**
+         * ICE: Server-reflexive preference
+         */
+        TInt iServerReflexPref;
+
+        /**
+         * ICE: Relay preference
+         */
+        TInt iRelayPref;
+
+        /**
+         * ICE: Peer-reflexive preference
+         */
+        TInt iPeerReflexPref;
+
+        /**
+         * ICE: IPv4 preference
+         */
+        TInt iIPv4Pref;
+
+        /**
+         * ICE: IPv6 preference
+         */
+        TInt iIPv6Pref;
+
+        /**
+         * ICE: VPN preference
+         */
+        TInt iVpnPref;
+
+        /**
+         * ICE: UDP preference
+         */
+        TInt iUdpPref;
+
+        /**
+         * ICE: TCP preference
+         */
+        TInt iTcpPref;
+
+        /**
+         * ICE: TCP-active preference
+         */
+        TInt iTcpActivePref;
+
+        /**
+         * ICE: TCP-passive preference
+         */
+        TInt iTcpPassivePref;
+
+        /**
+         * ICE: TCP-simultaneous-open preference
+         */
+        TInt iTcpSimultPref;
+
+        /**
+         * List of TURN server addresses.
+         */
+        RPointerArray<HBufC8> iTurnSrvAddrArray;
+
+        /**
+         * List of TURN server ports.
+         */
+        RArray<TInt> iTurnSrvPortArray;
+
+        /**
+         * List of TURN server usernames.
+         */
+        RPointerArray<HBufC8> iTurnUsernameArray;
+
+        /**
+         * List of TURN server passwords.
+         */
+        RPointerArray<HBufC8> iTurnPasswordArray;
+
+        /**
+         * Uncomment this for unit testing.
+         */
+        //friend class UT_CNSmlDmNATFWTraversalAdapter;
+    };
\ No newline at end of file