ipcm_plat/access_point_engine_misc_api/inc/VpnAPItem.h
changeset 0 5a93021fdf25
child 18 fcbbe021d614
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipcm_plat/access_point_engine_misc_api/inc/VpnAPItem.h	Thu Dec 17 08:55:21 2009 +0200
@@ -0,0 +1,352 @@
+/*
+* 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: 
+*     Declares the main handler, CVpnAPItem and the API for 
+*     the Vpn Access Point Engine.
+*
+*/
+
+
+#ifndef VPN_AP_ITEM_H
+#define VPN_AP_ITEM_H
+
+// Deprecation warning
+#warning This header file has been deprecated. Will be removed in one of the next SDK releases.
+ 
+ 
+// INCLUDES
+#include    <e32base.h>
+
+// CONSTANTS
+enum TVpnApMember
+    {
+    // WAP Access Point Table
+    EApVpnWapAccessPointID,         ///< The Uid of the VPN access point.
+                                    ///< READ ONLY, assigned by the database.
+                                    ///< TUint32
+    EApVpnWapAccessPointName,       ///< The name of the access point, TDesC16
+
+    EApVpnRealWapID,                ///< WAP ID of the real IAP ap, TUint32
+    EApVpnIapID,                    ///< IAP ID of the VPN IAP record, TUint32
+    EApVpnRealIapID,                ///< IAP ID of the real IAP record used
+                                    ///< to create connection, TUint32
+    EApVpnRealIapName,              ///< IAP name of the real IAP record used
+                                    ///< to create connection, Text
+    EApVpnPolicy,                   ///< The VPN policy to be used, TDesC16
+    EApVpnPolicyId,                 ///< The VPN policy to be used, TDesC16
+    EApVpnProxyServerAddress,       ///< Proxy server address, long text
+    EApVpnProxyPortNumber,          ///< Proxy port number,  TUint32
+
+    EApVpnHomeNetworkID,            ///< The ID of the home netwokr, TUint32
+    EApVpnIapNetworkID,             ///< The ID of the home netwokr, TUint32
+    EApVpnIapNetworkName,           ///< The name of the home netwokr, TDesC16
+    };
+
+
+
+
+
+// FORWARD DECLARATIONS
+class CCommsDatabase;
+
+// CLASS DECLARATION
+/**
+* This class encapsulates VPN related data in addition to a 'normal' 
+* access point. It provides Get/Set methods for every member.
+* Member set is not limited by the API.
+* It is used to read-write VPN data to and form CommsDb.
+* Main user is CVpnApEngine class but also UI might use this one.
+*/
+NONSHARABLE_CLASS( CVpnApItem ) : public CBase
+    { // holds VPN specific data
+
+    public:  // Constructors and destructor
+        /**
+        * Two-phased constructor. Leaves on failure, places instance
+        * on cleanup stack. Instance is initialised to default values.
+        * @return The constructed CApAccessPointItem.
+        *
+        * @deprecated
+        */
+        IMPORT_C static CVpnApItem* NewLC();
+
+
+        /**
+        * Destructor.
+        *
+        * @deprecated
+        */
+        IMPORT_C virtual ~CVpnApItem();
+
+        
+    protected:      // Constructors
+
+        /**
+        * Second-phase constructor.
+        *
+        * @deprecated
+        */
+        IMPORT_C void ConstructL();
+
+
+    private:    // Data
+        /**
+        * C++ default constructor.
+        *
+        * @deprecated
+        */
+        IMPORT_C CVpnApItem();
+
+
+
+    public:  // other public, exported functions
+        /**
+        * Copies the data from another CVpnApItem.
+        * Substitute for the "assignment operator". It requires allocation
+        * thus can leave.
+        * Wap Access Point Uid is not copied.
+        *
+        * @deprecated
+        */
+        IMPORT_C void CopyFromL( const CVpnApItem& aCopyFrom  );
+
+
+        /**
+        * Equality operator. Wap Access Point Uid is not counted.
+        *
+        * @deprecated
+        */
+        IMPORT_C TBool operator==( const CVpnApItem& aitem ) const;
+
+
+        /**
+        * Inequality operator. Wap Access Point Uid is not counted.
+        *
+        * @deprecated
+        */
+        IMPORT_C TBool operator!=( const CVpnApItem& aitem ) const;
+
+
+
+        /**
+        * This function reads up a 16-bit text value from the specified column.
+        * @param aColumn Enum value indicating the column to read.
+        * @param aValue Reference to a 16-bit descriptor to hold the value
+        * @return no return value
+        *
+        * @deprecated
+        */
+        IMPORT_C void ReadTextL( const TVpnApMember aColumn, TDes16& aValue );
+
+
+        /**
+        * This function reads up a long text value from the specified column.
+        * The ownership is not passed to the caller. It means that the caller
+        * should not delete the received value.
+        * If the caller must take the ownership for any reason, must make a
+        * copy and use that and delete the copy when no longer needed.
+        * @param aColumn Enum value indicating the column to read.
+        * @return A const HBufC* to the value.
+        *
+        * @deprecated
+        */
+        IMPORT_C const HBufC* ReadConstLongTextL( const TVpnApMember aColumn );
+
+
+        /**
+        * This function reads up a TUint32 value from the specified column.
+        * If the specified column does not exist (that is, not part of the
+        * database structure), it will Panic in debug builds and it will
+        * return KErrInvalidColumn in release builds without Panicking.
+        * Panic is used in debug builds because it indicates a programming
+        * error. In release, it 'notifies' the caller about the error through
+        * the return value but enables system to continue operation.
+        * @param aColumn Enum value indicating the column to read.
+        * @param aValue A reference to a TUint32 to hold the value
+        * @return Error code.
+        *
+        * @deprecated
+        */
+        IMPORT_C TInt ReadUint( const TVpnApMember aColumn, TUint32& aValue );
+
+        /**
+        * This function reads up a boolean value from the specified column.
+        * If the specified column does not exist (that is, not part of the
+        * database structure), it will Panic in debug builds and it will
+        * return KErrInvalidColumn in release builds without Panicking.
+        * Panic is used in debug builds because it indicates a programming
+        * error. In release, it 'notifies' the caller about the error through
+        * the return value but enables system to continue operation.
+        * @param aColumn Enum value indicating the column to read.
+        * @param aValue A reference to a boolean to hold the value
+        * @return Error code.
+        *
+        * @deprecated
+        */
+        IMPORT_C TInt ReadBool( const TVpnApMember aColumn, TBool& aValue );
+
+
+
+        /**
+        * This function writes a 16-bit text value to the specified column.
+        * If the specified column does not exist (that is, not part of the
+        * database structure), it will Panic in debug builds and it will
+        * return KErrInvalidColumn in release builds without Panicking.
+        * Panic is used in debug builds because it indicates a programming
+        * error. In release, it 'notifies' the caller about the error through
+        * the return value but enables system to continue operation.
+        * This function can Leave if the copying of the text does not succeed.
+        * @param aColumn Enum value indicating the column to write.
+        * @param aValue Reference to a 16-bit text descriptor to the value
+        * @return Error code.
+        *
+        * @deprecated
+        */
+        IMPORT_C TInt WriteTextL( const TVpnApMember aColumn,
+                                  const TDesC16& aValue );
+
+
+
+        /**
+        * This function writes a long text value to the specified column.
+        * If the specified column does not exist (that is, not part of the
+        * database structure), it will Panic in debug builds and it will
+        * return KErrInvalidColumn in release builds without Panicking.
+        * Panic is used in debug builds because it indicates a programming
+        * error. In release, it 'notifies' the caller about the error through
+        * the return value but enables system to continue operation.
+        * This function can Leave if the copying of the text does not succeed.
+        * @param aColumn Enum value indicating the column to write.
+        * @param aValue Reference to a 16-bit text descriptor to the value
+        * @return Error code.
+        *
+        * @deprecated
+        */
+        IMPORT_C TInt WriteLongTextL( const TVpnApMember aColumn,
+                                      const TDesC& aValue );
+
+
+        /**
+        * This function writes a TUint32 value to the specified column.
+        * If the specified column does not exist (that is, not part of the
+        * database structure), it will Panic in debug builds and it will
+        * return KErrInvalidColumn in release builds without Panicking.
+        * Panic is used in debug builds because it indicates a programming
+        * error. In release, it 'notifies' the caller about the error through
+        * the return value but enables system to continue operation.
+        * @param aColumn Enum value indicating the column to write.
+        * @param aValue A const reference to a TUint32 value
+        * @return Error code.
+        *
+        * @deprecated
+        */
+        IMPORT_C TInt WriteUint( const TVpnApMember aColumn,
+                                 const TUint32& aValue );
+
+        /**
+        * This function writes a boolean value to the specified column.
+        * If the specified column does not exist (that is, not part of the
+        * database structure), it will Panic in debug builds and it will
+        * return KErrInvalidColumn in release builds without Panicking.
+        * Panic is used in debug builds because it indicates a programming
+        * error. In release, it 'notifies' the caller about the error through
+        * the return value but enables system to continue operation.
+        * @param aColumn Enum value indicating the column to write.
+        * @param aValue A const reference to a boolean value
+        * @return Error code.
+        *
+        * @deprecated
+        */
+        IMPORT_C TInt WriteBool( const TVpnApMember aColumn,
+                                 const TBool& aValue );
+
+
+
+        // Query
+        // COMMON
+        /**
+        * This function returns the ID of the access point
+        * @return The ID of this access point
+        *
+        * @deprecated
+        */
+        IMPORT_C TUint32 WapUid() const;
+
+
+        /**
+        * This function returns the name of the connection
+        * Ownership is not passed.
+        * @return The name of the connection
+        *
+        * @deprecated
+        */
+        IMPORT_C const TDesC& Name() const;
+
+protected:
+        /**
+        * Reallocates a passed 16-bit descriptor. Passed descriptor is deleted,
+        * new one is AllocL-ed
+        * Passed descriptor MUST NOT BE on the CleanupStack
+        */
+        void ReAllocL(HBufC*& aDes, const TDesC16& aValue);
+
+        
+        /**
+        * Removes invalid chars from the passed text
+        * Invalid chars are: TAB
+        * @return a HBufC16 holding the new text
+        */
+        HBufC* RemoveInvalidCharsLC( const TDesC16& aInText );
+
+
+        /**
+        * Returns whether this VPN access point has proxy data or not.
+        * 
+        */
+        TBool HasProxy() const;
+
+private:    // Data
+
+
+        HBufC*      iName;
+        TUint32     iVpnTableId;
+        TUint32     iVpnIapId;
+        TUint32     iRealIapId;
+
+        TUint32     iVpnRealWapId;
+        TUint32     iVpnWapId;
+
+        TUint32     iVirtualBearerID;
+
+        HBufC*      iPolicyId;
+
+        HBufC*      iPolicy;
+        HBufC*      iProxyServerAddress;
+        HBufC*      iRealIapName;
+        TUint32     iProxyPort;
+        TUint32     iHomeNetwork;
+        TUint32     iVpnIapNetwork;
+        HBufC*      iVpnIapNetworkName;
+
+
+    protected:  // Friend classes
+        friend class CVpnApEngine;
+
+    };
+
+
+
+#endif 
+
+// End of File