diff -r 000000000000 -r dfb7c4ff071f commsfwtools/preparedefaultcommsdatabase/Tools/ced/inc/database.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/inc/database.h Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,167 @@ +// Copyright (c) 2003-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: +// + +/** + @file + @internalComponent +*/ + + + +#ifndef DBACCESS_H +#define DBACCESS_H + +#include "dbdef.h" + +namespace + { + // Used to process Hidden and ReadOnly records. + + // We can't simply set ReadOnly / Hidden columns to their values. + // We must intercept these columns, examine their values, and set + // the record state. + const TPtrC KHidden(COMMDB_HIDDEN); // field + const TPtrC KReadOnly(COMMDB_READ_ONLY); // field + const TPtrC KTrueVal(TRUE_VAL); // TRUE + } + +class LinkByTagResolver; +class DBAccess : public CBase +/** +@internalComponent +*/ + { + public: + //not allowing implicit conversions... + explicit DBAccess(const TBool aXML); + ~DBAccess(); + + // access + GLDEF_C void InitCommsdatL(); + GLDEF_C void Close(); + GLDEF_C void MaybeBeginTransactionL(); + GLDEF_C TInt CommitTransaction(); + GLDEF_C void CloseTable(); + + GLDEF_C TInt CommitChanges(); + + // miscellaneous + GLDEF_C void SetFieldCount(TInt fields) { FieldCountExpected = fields; } + GLDEF_C TInt GetFieldCount() { return FieldCountExpected; } + GLDEF_C TVersion Version() { return dbVersion; } + GLDEF_C TInt ErrorCode() { return iLastError; } + GLDEF_C TPtrC ErrorText() { return LastErrorMessage; } + GLDEF_C TInt GetActualFieldCount() { return iColCount; } + GLDEF_C void CheckElementValidity(TBool aToggle) { iValidityChecking = aToggle; } + + GLDEF_C TBool IsNameSet() { return iNameSet; } + GLDEF_C TInt GetRecordCount() { return iRecordCount; } + GLDEF_C void RecordIsTemplate(TBool aIsTemplate); + + GLDEF_C void SetCommitIndividualRecords(TBool aValue) + { + iCommitIndividualRecords = aValue; + } + GLDEF_C TBool CommitIndividualRecords() const + { + return iCommitIndividualRecords; + } + + //new + enum TCreateType + { + ECreateNew, + ECreateInsert, + EInsert + }; + GLDEF_C void CreateOrInsertRecordL(TCreateType aType,TMDBElementId aRecordElementId, TInt aRecordId); + GLDEF_C void RemoveRecord(TInt aPos); + GLDEF_C TInt SetColAndAttribL(TPtrC& aColumn,TPtrC& aSetting); + GLDEF_C TBool ConvertEnumsL(CMDBElement* aPtrField, TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertMiscEnums(CMDBElement* aPtrField, TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertModemEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertGPRSEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertCDMAEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertConnectionPrefEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertISPEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertPANEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertLinkRecords(CMDBElement* aPtrField, TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool CheckLegacyLinkRecords(TPtrC& aColumn,TPtrC& aSetting); + GLDEF_C TBool SetLinkedRecord(TUint32 aIndex, CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertAccessPointEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertIapPrioritySelectionPolicyEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); +#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY + GLDEF_C TBool ConvertApPrioritySelectionPolicyEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); +#endif // SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY + GLDEF_C void DoInitAndAddL(CCDRecordBase* aNewRecord,TInt aRecordId); + GLDEF_C void InitAndAddL(CCDRecordBase* aNewRecord,TInt aRecordId); + GLDEF_C void SaveTableProtection(CMDBRecordSetBase* aRecordSet); + GLDEF_C TBool AssignFieldValuesL(TPtrC& aColumn,TInt aTempType,CMDBElement* aPtrField,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TInt ConvertSpecialCharsL(TInt aTempType,CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertWAPEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C void RemoveCurrentRecord(); + GLDEF_C CMDBRecordBase* GetCurrentRecord(); + GLDEF_C TBool IsConnectionPrefValid(CCDConnectionPrefsRecord& aConnectionPrefRecord); + GLDEF_C TUint32 FindTableIdL(TDesC& aTableName); + GLDEF_C TBool CheckBearer(CMDBElement* aPtrField,TPtrC aSetting); + GLDEF_C TBool ConvertWLANEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertEAPSecEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C TBool ConvertTUNEAPSecEnums(CMDBElement* aPtrField,TPtrC& aColumn,TPtrC& aSetting,TMDBAttributeFlags aAttribute); + GLDEF_C void SetInAppendMode(TBool aInAppendMode) { iInAppendMode = aInAppendMode; } + GLDEF_C TBool TemplateFieldPresentL(TMDBElementId aElementId); + GLDEF_C void SetLinkByTagResolver(LinkByTagResolver* aResolver) { iLnkByTagRes = aResolver; } + GLDEF_C void RemoveLinkByTagResolver() { iLnkByTagRes = NULL; } + //This function is a getter/setter + GLDEF_C TBool& CfgXmlSetting() { return iIsXML; } + GLDEF_C void SetMeshProcessing(TBool aIsMeshProcessing) { iIsMeshFileProcessing = aIsMeshProcessing; } + + private: + // intermediate data structures + TInt ColCount; // amount of columns to update + COLATTRIBUTES TargetCols[MAX_DB_COLUMNS]; // data for columns to update + + TBool iSecure; + TBool iIsTemplate; + TBool iConfusingTemplateBehaviour; + TBool iNameSet; + TBool iCommitIndividualRecords; // for special tables have to commit each record individually, else one duplicate will rollback all edits + TBool iIsMeshFileProcessing; + + // miscellaneous + TUint32 access; // access bitmask on a table + TVersion dbVersion; // version of the database + TInt iLastError; // ret value of last call + TPtrC LastErrorMessage; // associated message if any + TInt FieldCountExpected; // amount of field updates expected + + TMDBElementId iTableId; + CMDBRecordSetBase* iTable; + CMDBSession* iDbSession; + TInt iRecordCount; + TUint32 iRecordId; + TInt iColCount; + TBool iValidityChecking; + + TInt i2000PacketServiceTable; + RPointerArray iRecordSetHolder; + + GLDEF_C TInt Evaluate(TInt err); // determines if there's been an error + TBool iInAppendMode; + TBool iIsXML; + //the class USES this pointer and doesn't own it!!! + LinkByTagResolver* iLnkByTagRes; + }; + +#endif