omaprovisioning/provisioning/accesspointadapter/Inc/CWPAPPhysicalProxy.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 07 Jan 2010 13:15:03 +0200
changeset 1 a9c0ce913924
permissions -rw-r--r--
Revision: 200951 Kit: 201001

/*
* Copyright (c) 2002 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:     Defines a class, which holds physical proxy information.
*
*/





#ifndef CWPAPPHYSICALPROXY_H
#define CWPAPPHYSICALPROXY_H

// INCLUDES

#include <MWPVisitor.h>
#include "CWPAPItemBase.h"
#include <cmconnectionmethodext.h>

// DATA TYPES

enum TWPAPPxAddrType
	{
	EPxAddrTypeIPv4 = 1,
    EPxAddrTypeIPv6,
	EPxAddrTypeUnsupported // (IPv6, E164, ALPHA are not supported)
	};

// FORWARD DECLARATIONS

class CWPAPLogicalProxy;
class CWPAPPort;
class CWPAPNapdef;

// CLASS DECLARATION

/**
 * CWPAPPhysicalProxy contains physical proxy information
 */ 
class CWPAPPhysicalProxy : public CWPAPItemBase, private MWPVisitor
	{
	public:  // Constructors and destructor

        /**
        * Two-phased constructor.
		* @param aDefaultName The default name of an access point
        * @param aCharacteristic The PXPHYSICAL characteristic.
        * @param aPort Reference to a pointer containing PORT of a PXLOGICAL.
        */
		static CWPAPPhysicalProxy* NewLC( const TDesC& aDefaultName, 
            CWPCharacteristic& aCharacteristic, 
            CWPCharacteristic& aLogicalCharacteristic,
            CWPAPPort*& aPort );

        /**
        * Destructor.
        */
		~CWPAPPhysicalProxy();

	public: // From CWPAPItemBase

		TBool ValidateL();
		void AddDataL( RCmConnectionMethodExt& aCmItem );
        TInt AddItemsL( RPointerArray<CWPAPAccesspointItem>& aItems,
            CWPAPItemBase* aLogicalProxy,
            CWPAPItemBase* aPhysicalProxy  );
        const TDesC& Name();
        void SaveWlanDataL( TUint32 /*aIapId*/, CCommsDatabase& /*aCommsDb*/ ) {};
        void UpdateLingerL(const TUint32 /*aIapId*/){};

	private: // From CWPAPItemBase. Override default implementation.

		void VisitL( CWPCharacteristic& aElement );		
		void VisitL( CWPParameter& aElement );	
		void VisitLinkL( CWPCharacteristic& aCharacteristic );

	private:  // New functions

        /**
        * C++ default constructor.
		* @param aDefaultName The default name of an access point
        * @param aPort Reference to a pointer containing PORT of a PXLOGICAL.
        */
		CWPAPPhysicalProxy( const TDesC& aDefaultName, 
            CWPCharacteristic& aLogicalCharacteristic,
            CWPAPPort*& aPort );

        /**
        * By default Symbian 2nd phase constructor is private.
        */
		void ConstructL();
		
	private: // Data

		/// Pointer to data model parameter. Refs.
		CWPParameter* iProxyAddr;

        /// Pointer to data model parameter. Refs.
        CWPParameter* iName;

		/// Proxy address type
		TWPAPPxAddrType iPxAddrType;

		/// Pointer to port object. Owns.
		CWPAPPort* iPort;

        /// Pointer to port object owned by logical proxy. Refs.
        CWPAPPort*& iLogicalPort;

        /// Napdefs linked to by PXPHYSICAL
        RPointerArray<CWPAPNapdef> iNapdefs;

        /// Pointer to characteristic
        CWPCharacteristic& iLogicalCharacteristic;

	private: // For testing

		friend class T_CWPAPLogicalProxy;
		friend class T_CWPAPAdapter;
		friend class T_WPAPTestUtils;
	};

#endif	// CWPAPPHYSICALPROXY_H
            
// End of File