williamr@2: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #if !(defined COMMDBCONNPREF_H) williamr@2: #define COMMDBCONNPREF_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@4: class TCommDbConnPref : public TConnPref williamr@4: /** Connection preferences which override the contents of the ConnectionPreferences williamr@4: tables in CommsDat. The only mandatory field is IAP. williamr@2: williamr@4: An Internet Access Point(IAP) represents a IP bound bearer and a set of parameters williamr@4: on that bearer, which the device can use to make a connection to the Internet. williamr@2: williamr@4: A list of available IAPs and Networks can be retrieved from CommsDat using williamr@4: CommsDat::CCDIAPRecord and CCDNetworkRecord. williamr@2: williamr@4: @code williamr@4: RConnection conn; williamr@4: User::LeaveIfError(conn.Open(sockSvr)); williamr@4: CleanupClosePushL(conn); williamr@2: williamr@4: TCommDbConnPref prefs; williamr@4: prefs.SetIapId(3); williamr@4: TInt error = conn.Start(prefs); williamr@4: @endcode williamr@2: williamr@4: @see CommsDat::CCDNetworkRecord williamr@4: @see CommsDat::CCDIAPRecord williamr@4: @see TCommDbDialogPref williamr@4: @see TCommDbConnectionDirection williamr@4: @see TCommDbBearer williamr@4: @see RConnection::Start williamr@4: williamr@2: @publishedAll williamr@2: @released since v7.0s williamr@2: */ williamr@2: { williamr@2: friend class TCommDbMultiConnPref; williamr@2: public: williamr@2: IMPORT_C TCommDbConnPref(); williamr@2: IMPORT_C static TVersion Version(); williamr@2: williamr@2: IMPORT_C void SetIapId(TUint32 aIapId); williamr@2: IMPORT_C TUint32 IapId() const; williamr@2: williamr@2: IMPORT_C void SetNetId(TUint32 aNetId); williamr@2: IMPORT_C TUint32 NetId() const; williamr@2: williamr@2: IMPORT_C void SetDialogPreference(TCommDbDialogPref aDialogPref); williamr@2: IMPORT_C TCommDbDialogPref DialogPreference() const; williamr@2: williamr@2: IMPORT_C void SetDirection(TCommDbConnectionDirection aDirection); williamr@2: IMPORT_C TCommDbConnectionDirection Direction() const; williamr@2: williamr@2: IMPORT_C void SetBearerSet(TUint32 aBearerSet); williamr@2: IMPORT_C TUint32 BearerSet() const; williamr@2: williamr@2: IMPORT_C virtual TInt Compare(const TCommDbConnPref& aPref) const; williamr@2: inline TBool operator==(const TCommDbConnPref& aPref) const; williamr@2: inline TBool operator!=(const TCommDbConnPref& aPref) const; williamr@2: williamr@2: inline static TCommDbConnPref& Cast(const TConnPref& aPref); williamr@2: williamr@4: public: williamr@4: struct SCommDbConnPref williamr@4: { williamr@4: TUint32 iIapId; williamr@4: TUint32 iNetId; williamr@4: TCommDbDialogPref iDialogPref; williamr@4: TCommDbConnectionDirection iDirection; williamr@4: TUint32 iBearerSet; williamr@4: }; williamr@2: inline SCommDbConnPref* PrefPtr() const; williamr@4: const static TInt8 KMajorVersionNumber = 8; williamr@4: const static TInt8 KMinorVersionNumber = 0; williamr@4: const static TInt16 KBuildVersionNumber = 1; williamr@2: }; williamr@2: williamr@2: williamr@2: williamr@2: class TCommDbMultiConnPref : public TConnPref williamr@4: /** A set of TCommDbConnPrefs which the device will use to attempt to connect williamr@4: to the internet. The preferences at index 1 will be used first, and if this fails williamr@4: the preferences at index 2 will be used, and so on until connection attempts williamr@4: are exhausted. williamr@4: williamr@4: The index counts from 1. There must be as many connection preferences as there williamr@4: are connection attempts. williamr@4: williamr@4: @code williamr@4: RConnection conn; williamr@4: User::LeaveIfError(conn.Open(sockSvr)); williamr@4: CleanupClosePushL(conn); williamr@4: williamr@4: TCommDbConnPref prefsA; williamr@4: prefsA.SetIapId(3); williamr@4: TCommDbConnPref prefsB; williamr@4: prefsB.SetIapId(5); williamr@4: williamr@4: TCommDbMultiConnPref prefs; williamr@4: prefs.SetPreference(1, prefsA); williamr@4: prefs.SetPreference(2, prefsB); williamr@4: prefs.SetConnectionAttempts(2); williamr@4: williamr@4: TInt error = conn.Start(prefs); williamr@4: @endcode williamr@4: williamr@4: @see TCommDbConnPref williamr@4: @see RConnection::Start williamr@4: williamr@2: @publishedAll williamr@2: @released since v7.0s williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C TCommDbMultiConnPref(); williamr@2: IMPORT_C static TVersion Version(); williamr@2: williamr@2: IMPORT_C TInt SetPreference(TInt aIndex, const TCommDbConnPref& aPref); williamr@2: IMPORT_C TInt GetPreference(TInt aIndex, TCommDbConnPref& aPref); williamr@2: williamr@2: IMPORT_C void SetConnectionAttempts(TInt aNumAttempts); williamr@2: IMPORT_C TInt ConnectionAttempts(); williamr@2: williamr@2: inline static TCommDbMultiConnPref& Cast(const TConnPref& aPref); williamr@2: williamr@4: public: williamr@4: const static TInt KMaxMultiConnPrefCount = 2; williamr@4: struct SCommDbMultiConnPref williamr@4: { williamr@4: TInt iNumAttempts; williamr@4: struct TCommDbConnPref::SCommDbConnPref iPrefs[KMaxMultiConnPrefCount]; williamr@4: }; williamr@2: inline struct SCommDbMultiConnPref* PrefPtr() const; williamr@4: const static TInt8 KMajorVersionNumber = 8; williamr@4: const static TInt8 KMinorVersionNumber = 0; williamr@4: const static TInt16 KBuildVersionNumber = 1; williamr@2: }; williamr@2: williamr@2: #include williamr@2: williamr@2: #endif williamr@2: // COMMDBCONNPREF_H