--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsconfig/commsdatabaseshim/commdbshim/SCDB/commdb_impl.H Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,185 @@
+// Copyright (c) 2006-2009 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:
+// Comms Database public interface
+//
+//
+
+/**
+ @file
+ @deprecated since v9.1. Functionality is replaced with commsdat.
+*/
+
+#ifndef COMMDB_IMPL_H
+#define COMMDB_IMPL_H
+
+#include <d32dbms.h>
+#include <metadatabase.h>
+#include <commsdattypesv1_1.h>
+
+#include <dial.h>
+#include <cdbcols.h>
+#include <cdblen.h>
+#include <d32dbms.h>
+
+#include "NotifyClient.H"
+
+#include <e32property.h>
+
+class CCommsDatabaseBase;
+class CCommsDbTableView;
+
+using namespace CommsDat;
+
+// Params used for customising SetRecordSetL call
+const TBool KPreparePriming = ETrue;
+const TBool KDoNotPreparePriming = EFalse;
+const TBool KLoadTable = ETrue;
+const TBool KDoNotLoadTable = EFalse;
+
+const TBool KTemplateCall = ETrue;
+
+const TBool KProtectTable = ETrue;
+const TBool KUnprotectTable = EFalse;
+const TBool KProtectRecord = ETrue;
+const TBool KUnprotectRecord = EFalse;
+
+const TBool KHidden = ETrue;
+const TBool KNotHidden = EFalse;
+
+const TBool KReadOnly = ETrue;
+const TBool KNotReadOnly = EFalse;
+
+// CCommDbTableExtension class
+//
+// Contains data items & access functions moved here rather than CCommsDbConnectionPrefTableView
+// to preserve the size of the class and hence BC.
+//
+NONSHARABLE_CLASS(CCommDbTableExtension) : public CBase
+/**
+CCommDbTableExtension class
+Contains data items & access functions moved here rather than CCommsDbConnectionPrefTableView
+to preserve the size of the class and hence BC.
+
+@internalComponent
+*/
+ {
+public:
+ static CCommDbTableExtension* NewL();
+ ~CCommDbTableExtension();
+
+ void GetRecordInfoL(const TDesC& aColumn, TDbColType& aColType, TUint32& aAttrib);
+ TDbColType GetColType(TInt aType);
+ TInt GetMaxTypeLength(TInt aType);
+
+ TInt GetTableAccess(RDbRowSet::TAccess &aAccess);
+
+ CMDBRecordSetBase* GetRecordSetL();
+ TInt GetRecordSet(CMDBRecordSetBase*& aRecSet);
+
+ CMDBRecordBase* GetCurrentRecordL();
+ TInt GetCurrentRecord(CMDBRecordBase*& aRecord);
+
+ TInt GetRecordSetIndex(TInt &aIndex);
+ TInt GetRecordSetIndexL();
+ void RefreshDatabaseL(CMDBSession& aDbs);
+
+ TInt GotoFirstRecord(CMDBSession& aDbs);
+ TInt GotoNextRecord(CMDBSession& aDbs);
+ TInt GotoPreviousRecord(CMDBSession& aDbs);
+
+ CMDBRecordSetBase* RecordSetFactoryL(const TDesC& aTableName, TBool preparePriming, CMDBSession& aDbs);
+ TBool IsGenericRecord(TMDBElementId aElementId) const;
+
+ void SetRecordSetL(const TDesC& aTableName, CMDBSession& aDbs, TBool preparePriming, TBool aLoadTable, TBool aTemplate = EFalse);
+ void SetRecordSet(CMDBRecordSetBase* aRecordSetContainer);
+
+ void InsertConnPrefRecordL(CCDConnectionPrefsRecord* aConnPref, CMDBSession& aDbs);
+ void InsertRecordL(TBool aCopy, TUint32& aId, CMDBSession& aDbs, TBool aIsTemplate);
+ void DeleteCurrentRecordL(CMDBSession& aDbs, TBool aContainerOnly = EFalse);
+ TInt CancelRecordChanges(CMDBSession& aDbs);
+
+ void ResetArrays(CMDBSession& aSession);
+ void ResetAndDestroyL();
+
+ void CommitTransaction();
+ void RollBackTransaction();
+
+ // sorting functions
+ void SortById();
+ void SortByRank();
+
+ void SetShowHiddenRecords(TBool aShowHidden)
+ {
+ iShowHidden = aShowHidden;
+ }
+private:
+ CCommDbTableExtension();
+
+ static TInt CompareRecordsById(const CMDBRecordBase& aLeft, const CMDBRecordBase& aRight);
+ static TInt CompareRecordsByRank(const CMDBRecordBase& aLeft, const CMDBRecordBase& aRight);
+
+ TInt GetCurrentRecordIndex() const;
+ TBool AdvanceIndexToPrevValidRecord(TInt& aIdx) const;
+ TBool AdvanceIndexToNextValidRecord(TInt& aIdx) const;
+
+ TBool FindFirstNextValidRecord(TBool aResetToStart);
+ TBool FindFirstPrevValidRecord();
+ TInt FindValueInRecSet(TInt aValue) const;
+
+ void UpdateLastCommitSeq();
+ TInt MaybeRefreshCurrentRecord(CMDBSession& aDbs);
+private:
+ CMDBRecordSetBase* iRecordSetContainer;
+ CMDBRecordBase* iCurrentRecord;
+ CMDBRecordBase* iEndOfTableRecordBackup;
+ CMDBRecordBase* iBeginingOfTableRecordBackup;
+ TBool iShowHidden;
+ RProperty iCommitSeqProperty;
+ TInt iLastCommitSeq;
+public:
+ RArray<TUint32> iInsertedRecords;
+ RArray<TUint32> iDeletedRecords;
+ };
+
+class CCommsDbTableView;
+class CCommsDbConnectionPrefTableView;
+class CCommDbTableExtension;
+
+NONSHARABLE_CLASS(CCommsDatabaseImpl) : public CBase
+ {
+ public:
+ friend class CCommsDatabaseBase;
+ private:
+ CCommsDatabaseImpl();
+ ~CCommsDatabaseImpl();
+ public:
+ void RegisterViewL(CCommsDbTableView* aTable);
+ void UnRegisterView(CCommsDbTableView* aTable);
+ void RegisterConnPrefViewL(CCommsDbConnectionPrefTableView* aTable);
+ void UnRegisterConnPrefView(CCommsDbConnectionPrefTableView* aTable);
+ void CheckGlobalSettingsTableExistsL();
+ TInt RequestNotification(TRequestStatus& aStatus);
+ void CancelRequestNotification();
+ private:
+ RPointerArray<CCommsDbTableView> iTableViews;
+ RPointerArray<CCommsDbConnectionPrefTableView> iConnPrefViews;
+ TBool iHaveCheckedGSTableExists;
+ //Notification
+ RCommsdatNotifier iShimNotifier;
+ public:
+ CMDBSession* iDbs;
+ };
+
+#endif
+// COMMDB_IMPL_H