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: // Comms Database Connection Preference Table header williamr@2: // williamr@2: // williamr@2: williamr@2: /** williamr@2: @file williamr@2: @publishedAll williamr@2: @deprecated since v9.1. Functionality is replaced with commsdat. williamr@2: */ williamr@2: williamr@2: #ifndef CDBPREFTABLE_H williamr@2: #define CDBPREFTABLE_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: class CCommsDatabase; williamr@2: class TCommDbCommonBearerInfo; williamr@2: class CCommDbTableExtension; williamr@2: class CCommsDbTableView; williamr@2: //Created via CCommsDatabase::OpenConnectionPrefTableLC() or NewLC(). williamr@2: //Uses a CCommsDatabase and has an RDbView for access to the database. williamr@2: class CCommsDbConnectionPrefTableView : public CBase williamr@2: /** williamr@2: williamr@2: Implements actions on records of the Connection Preferences table, to allow clients to set williamr@2: the preferred order in which connections are attempted. williamr@2: williamr@2: The class is similiar to CCommsDbTableView, but only allows access to connection williamr@2: preferences as a set and not to individual fields in the table. This prevents williamr@2: inappropriate updates of the records. Like CCommsDbTableView, the class has williamr@2: a group of functions for navigating through the records in the view, and another williamr@2: group for setting fields in the current record. williamr@2: williamr@2: Clients do not create this type of object, but get an instance through williamr@2: CCommsDatabase::OpenConnectionPrefTableLC(), williamr@2: CCommsDatabase::OpenConnectionPrefTableInRankOrderLC(), or williamr@2: CCommsDatabase::OpenConnectionPrefTableViewOnRankLC(). williamr@2: williamr@2: In addition to the leave codes documented, all leaving functions can leave williamr@2: with any error returned by DBMS during database manipulation. williamr@2: williamr@2: @see CCommDbOverrideSettings::GetConnectionPreferenceOverride() williamr@2: @see CCommDbOverrideSettings::SetConnectionPreferenceOverride() williamr@2: @publishedAll williamr@2: @released */ williamr@2: { williamr@2: public: williamr@2: friend class CCommsDatabaseBase; williamr@2: williamr@2: public: williamr@2: class TCommDbIapBearer williamr@2: /** Encapsulates the bearer set (CONNECT_PREF_BEARER_SET) and IAP (CONNECT_PREF_IAP) williamr@2: fields. williamr@2: Used in calls to UpdateBearerL() and as a public member of TCommDbIapConnectionPref. williamr@2: @publishedAll williamr@2: @released */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C TCommDbIapBearer(); williamr@2: public: williamr@2: /** Value for the bearer set (CONNECT_PREF_BEARER_SET) field. */ williamr@2: TUint32 iBearerSet; williamr@2: /** Value for the IAP (CONNECT_PREF_IAP) field. */ williamr@2: TUint32 iIapId; williamr@2: }; williamr@2: williamr@2: class TCommDbIapConnectionPref williamr@2: /** Encapsulates the rank (CONNECT_PREF_RANKING), direction (CONNECTION_PREF_DIRECTION), williamr@2: and dialog preference (CONNECT_PREF_DIALOG_PREF) fields, plus a TCommDbIapBearer williamr@2: object. williamr@2: A complete connection preference - containing rank, direction, dialogue option, williamr@2: bearers for the dialogue and the prefered IAP. williamr@2: @see TCommDbConnectionDirection williamr@2: @publishedAll williamr@2: @released */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C TCommDbIapConnectionPref(); williamr@2: IMPORT_C TBool operator==(const TCommDbIapConnectionPref& aPref) const; williamr@2: public: williamr@2: /** Value for the rank (CONNECT_PREF_BEARER_SET) field. */ williamr@2: TUint32 iRanking; williamr@2: /** Value for the direction (CONNECTION_PREF_DIRECTION) field. williamr@2: williamr@2: @see TCommDbConnectionDirection */ williamr@2: TCommDbConnectionDirection iDirection; williamr@2: /** Value for the dialog preference (CONNECT_PREF_DIALOG_PREF) field. williamr@2: williamr@2: @see TCommDbDialogPref */ williamr@2: TCommDbDialogPref iDialogPref; williamr@2: /** Values for the bearer (CONNECT_PREF_BEARER_SET) and IAP (CONNECT_PREF_IAP) fields. williamr@2: williamr@2: @see TCommDbIapBearer */ williamr@2: TCommDbIapBearer iBearer; williamr@2: }; williamr@2: williamr@2: class TCommDbIspBearer williamr@2: /** williamr@2: williamr@2: Frame left in place for BC with 6.1 williamr@2: @publishedAll williamr@2: @deprecated 7.0 */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C TCommDbIspBearer(); williamr@2: }; williamr@2: williamr@2: class TCommDbIspConnectionPref williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C TCommDbIspConnectionPref(); williamr@2: IMPORT_C TBool operator==(const TCommDbIspConnectionPref& aPref) const; williamr@2: public: williamr@2: TCommDbIspBearer iBearer; williamr@2: }; williamr@2: williamr@2: public: williamr@2: IMPORT_C virtual ~CCommsDbConnectionPrefTableView(); williamr@2: williamr@2: static CCommsDbConnectionPrefTableView* NewLC(CCommsDatabase& aDb, const TDbQuery& aQuery); williamr@2: static CCommsDbConnectionPrefTableView* NewLC(CCommsDatabase& aDb, TCommDbConnectionDirection aDirection, TBool aSortRanking = EFalse); williamr@2: static CCommsDbConnectionPrefTableView* NewL(CCommsDatabase& aDb, TCommDbConnectionDirection aDirection, TUint32 aRank); williamr@2: williamr@2: IMPORT_C void InsertConnectionPreferenceL(const TCommDbIapConnectionPref& aPref, TBool aReadOnly = EFalse); williamr@2: williamr@2: IMPORT_C void ReadConnectionPreferenceL(TCommDbIapConnectionPref& aPref); williamr@2: williamr@2: IMPORT_C void UpdateBearerL(const TCommDbIapBearer& aUpdate, TBool aReadOnly = EFalse); williamr@2: williamr@2: IMPORT_C void UpdateDialogPrefL(const TCommDbDialogPref& aUpdate); williamr@2: williamr@2: IMPORT_C void ChangeConnectionPreferenceRankL(TUint32 aNewRank); williamr@2: williamr@2: IMPORT_C void DeleteConnectionPreferenceL(); williamr@2: williamr@2: IMPORT_C void SwapConnectionPreferencesL(TCommDbConnectionDirection aDirection, TUint32 aFirstRank, TUint32 aSecondRank); williamr@2: williamr@2: IMPORT_C TInt GotoFirstRecord(); williamr@2: williamr@2: IMPORT_C TInt GotoNextRecord(); williamr@2: williamr@2: IMPORT_C TInt GotoPreviousRecord(); williamr@2: williamr@2: // williamr@2: // ISP Connection Preference record operations williamr@2: // All these were deprecated in 7.0 but have now williamr@2: // been re-instated in limited form to accomodate 6.1 BC williamr@2: // williamr@2: IMPORT_C void InsertConnectionPreferenceL(const TCommDbIspConnectionPref& aPref, TBool aReadOnly = EFalse); williamr@2: IMPORT_C void UpdateBearerL(const TCommDbIspBearer& aUpdate, TBool aReadOnly = EFalse); williamr@2: IMPORT_C void ReadConnectionPreferenceL(TCommDbIspConnectionPref& aPref); williamr@2: williamr@2: protected: williamr@2: CCommsDbConnectionPrefTableView(CCommsDatabase& aDb); williamr@2: void ConstructL(const TDbQuery& aQuery); williamr@2: void ConstructL(TCommDbConnectionDirection aDirection, TBool aSortRanking); williamr@2: void ConstructL(TCommDbConnectionDirection aDirection, TUint32 aRank); williamr@2: void Close(); williamr@2: void OpenL(const TDbQuery& aQuery); williamr@2: RDbRowSet::TAccess GetL(); williamr@2: inline TDbColNo ColNum(const TDesC& aColumn) const; williamr@2: void GetUint32L(const TDesC& aColumnName, TUint32& aValue); williamr@2: williamr@2: private: williamr@2: void SetRankL(TUint32 aNewRank); williamr@2: void DoSwapConnectionPreferencesL(TCommDbConnectionDirection aDirection, TUint32 aFirstRank, TUint32 aSecondRank); williamr@2: williamr@2: protected: williamr@2: /** DBMS view. Variable not used in shim. Not removed because of BC break */ williamr@2: RDbView iTableView; williamr@2: CCommDbTableExtension* iTableExt; williamr@2: williamr@2: /** Comms data base that is being viewed. */ williamr@2: CCommsDatabase& iDb; williamr@2: }; williamr@2: williamr@2: #endif