commsfwtools/preparedefaultcommsdatabase/Tools/ced/inc/database.h
changeset 0 dfb7c4ff071f
--- /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<CMDBRecordSetBase> 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