commsconfig/commsdatabaseshim/commdbshim/INC/CDBTEMP.H
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsconfig/commsdatabaseshim/commdbshim/INC/CDBTEMP.H	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,101 @@
+// 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:
+// CommDb Template Record View
+// 
+//
+
+/**
+ @file
+ @deprecated since v9.1. Functionality is replaced with commsdat.
+*/
+
+#ifndef CDBTEMP_H
+#define CDBTEMP_H
+
+#include <d32dbms.h>
+
+class CCommsDatabaseBase;
+class CCommsDbTableView;
+
+// Template view class. Uses a supplied `CCommsDatabase` and a
+// `CCommsDbTableView` to read and write template records. Created from
+// `CCommsDbTableView::ConstructL()` the recursion	is stopped because the
+//	template view NewL is called with aUseTemplate set to false.
+//	internal "This class is poorly named it should be something like:
+//	CCommDbTemplateView"
+class CCommsDbTemplateRecord : public CBase
+/** The view on a template record of a specific table. 
+
+The view contains only the template record and therefore, unlike the more 
+general CCommsDbTableView class, does not contain any navigation functions.
+
+This class does, however, contain the necessary member functions for reading 
+and writing to columns.
+@publishedAll
+@released */
+	{
+public:
+	/** Creates a new template view on the database and table specified. */
+	IMPORT_C static CCommsDbTemplateRecord* NewL(CCommsDatabaseBase* aDb,const TDesC& aTableName);
+	IMPORT_C ~CCommsDbTemplateRecord();
+
+	/** Modifies the existing template record if there is no template create one.
+		StoreModifications() is called to complete the transaction. */
+	IMPORT_C TInt Modify();
+	/** Removes the template from the table. */
+	IMPORT_C TInt Delete();
+	/** Stores an new or updated template back to the database. */
+	IMPORT_C TInt StoreModifications();
+	/** Cancels pending changes since `Modify()`. */
+	IMPORT_C void CancelModifications();
+
+	// Access data from the template 
+	IMPORT_C void ReadTextL(const TDesC& aColumn, TDes8& aValue);
+	IMPORT_C void ReadTextL(const TDesC& aColumn, TDes16& aValue);
+	IMPORT_C HBufC* ReadLongTextLC(const TDesC& aColumn);
+	IMPORT_C void ReadUintL(const TDesC& aColumn, TUint32& aValue);
+	IMPORT_C void ReadBoolL(const TDesC& aColumn, TBool& aValue);
+	IMPORT_C void ReadTypeAttribL(const TDesC& aColumn, TDbColType& aColType, TUint32& aAttrib);
+	IMPORT_C void ReadColumnLengthL(const TDesC& aColumn, TInt& aLength);
+
+	// Modify a new or modified template. Must call `StoreModifications()`
+	// to store the changes. 
+	IMPORT_C void WriteTextL(const TDesC& aColumn, const TDesC8& aValue);
+	IMPORT_C void WriteTextL(const TDesC& aColumn, const TDesC16& aValue);
+	IMPORT_C void WriteLongTextL(const TDesC& aColumn, const TDesC& aValue);
+	IMPORT_C void WriteUintL(const TDesC& aColumn, const TUint32& aValue);
+	IMPORT_C void WriteBoolL(const TDesC& aColumn, const TBool& aValue);
+
+	/** The name of the table that this template belongs to. */
+	IMPORT_C void GetTableName(TDes& aTableName) const;
+
+	/** True if a template exists. */
+	IMPORT_C TBool TemplateRecordExists();
+	
+	// Create a new record based on the contents of the template record 
+	IMPORT_C TInt InsertCopy(TUint32& aId);
+private:
+	CCommsDbTemplateRecord();
+	void ConstructL(CCommsDatabaseBase* aDb, const TDesC& aTableName);
+	TInt Reposition();
+
+    // Enabling and Desabling client view on template record
+    TBool SetHiddenMask();
+    void ClearHiddenMask(TBool aClearHiddenMask);
+private:
+	CCommsDbTableView* iView;
+	TBool iRecordExists;
+	};
+
+#endif