omacpadapters/accesspointadapter/Inc/CWPAPPhysicalProxy.h
author hgs
Tue, 13 Jul 2010 04:01:20 +0530
changeset 47 d316aecb87fd
permissions -rw-r--r--
201025_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     1
/*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     3
* All rights reserved.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     8
*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    11
*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    12
* Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    13
*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    14
* Description:     Defines a class, which holds physical proxy information.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    15
*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    16
*/
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    17
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    18
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    19
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    20
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    21
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    22
#ifndef CWPAPPHYSICALPROXY_H
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    23
#define CWPAPPHYSICALPROXY_H
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    24
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    25
// INCLUDES
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    26
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    27
#include <MWPVisitor.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    28
#include "CWPAPItemBase.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    29
#include <cmconnectionmethodext.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    30
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    31
// DATA TYPES
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    32
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    33
enum TWPAPPxAddrType
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    34
	{
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    35
	EPxAddrTypeIPv4 = 1,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    36
    EPxAddrTypeIPv6,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    37
	EPxAddrTypeUnsupported // (IPv6, E164, ALPHA are not supported)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    38
	};
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    39
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    40
// FORWARD DECLARATIONS
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    41
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    42
class CWPAPLogicalProxy;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    43
class CWPAPPort;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    44
class CWPAPNapdef;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    45
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    46
// CLASS DECLARATION
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    48
/**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    49
 * CWPAPPhysicalProxy contains physical proxy information
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    50
 */ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    51
class CWPAPPhysicalProxy : public CWPAPItemBase, private MWPVisitor
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    52
	{
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    53
	public:  // Constructors and destructor
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    54
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    55
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    56
        * Two-phased constructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    57
		* @param aDefaultName The default name of an access point
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    58
        * @param aCharacteristic The PXPHYSICAL characteristic.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    59
        * @param aPort Reference to a pointer containing PORT of a PXLOGICAL.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    60
        */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    61
		static CWPAPPhysicalProxy* NewLC( const TDesC& aDefaultName, 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    62
            CWPCharacteristic& aCharacteristic, 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    63
            CWPCharacteristic& aLogicalCharacteristic,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    64
            CWPAPPort*& aPort );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    65
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    66
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    67
        * Destructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    68
        */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    69
		~CWPAPPhysicalProxy();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    70
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    71
	public: // From CWPAPItemBase
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    72
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    73
		TBool ValidateL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    74
		void AddDataL( RCmConnectionMethodExt& aCmItem );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    75
        TInt AddItemsL( RPointerArray<CWPAPAccesspointItem>& aItems,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    76
            CWPAPItemBase* aLogicalProxy,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    77
            CWPAPItemBase* aPhysicalProxy  );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    78
        const TDesC& Name();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    79
        void SaveWlanDataL( TUint32 /*aIapId*/, CCommsDatabase& /*aCommsDb*/ ) {};
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    80
        void UpdateLingerL(const TUint32 /*aIapId*/){};
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    81
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    82
	private: // From CWPAPItemBase. Override default implementation.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    83
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    84
		void VisitL( CWPCharacteristic& aElement );		
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    85
		void VisitL( CWPParameter& aElement );	
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    86
		void VisitLinkL( CWPCharacteristic& aCharacteristic );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    87
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    88
	private:  // New functions
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    89
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    90
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    91
        * C++ default constructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    92
		* @param aDefaultName The default name of an access point
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    93
        * @param aPort Reference to a pointer containing PORT of a PXLOGICAL.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    94
        */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    95
		CWPAPPhysicalProxy( const TDesC& aDefaultName, 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    96
            CWPCharacteristic& aLogicalCharacteristic,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    97
            CWPAPPort*& aPort );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    98
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    99
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   100
        * By default Symbian 2nd phase constructor is private.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   101
        */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   102
		void ConstructL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   103
		
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   104
	private: // Data
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   105
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   106
		/// Pointer to data model parameter. Refs.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   107
		CWPParameter* iProxyAddr;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   108
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   109
        /// Pointer to data model parameter. Refs.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   110
        CWPParameter* iName;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   111
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   112
		/// Proxy address type
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   113
		TWPAPPxAddrType iPxAddrType;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   114
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   115
		/// Pointer to port object. Owns.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   116
		CWPAPPort* iPort;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   117
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   118
        /// Pointer to port object owned by logical proxy. Refs.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   119
        CWPAPPort*& iLogicalPort;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   120
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   121
        /// Napdefs linked to by PXPHYSICAL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   122
        RPointerArray<CWPAPNapdef> iNapdefs;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   123
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   124
        /// Pointer to characteristic
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   125
        CWPCharacteristic& iLogicalCharacteristic;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   126
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   127
	private: // For testing
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   128
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   129
		friend class T_CWPAPLogicalProxy;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   130
		friend class T_CWPAPAdapter;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   131
		friend class T_WPAPTestUtils;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   132
	};
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   133
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   134
#endif	// CWPAPPHYSICALPROXY_H
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   135
            
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   136
// End of File