diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/cdbtemp.h --- a/epoc32/include/cdbtemp.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/cdbtemp.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,103 @@ -cdbtemp.h +// 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.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 + +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