/** Copyright (c) 2002 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: Declaration of the class CDbCreator**/#ifndef DUMP_TABLES_H#define DUMP_TABLES_H// INCLUDE FILES#include <e32base.h>#include <s32file.h>// CLASS DECLARATIONclass CMDBSession;/*** CDumpTables writes data from CommsDat to CSV format file.* CDumpTables dumps the CommsDat tables which are not dumped * by any other application.*/class CDumpTables : public CBase { public: /** * Two-phase constructor. * @return CDumpTables instance. */ static CDumpTables* NewL(); /** * Two-phase constructor. * @return CDumpTables instance. Let the instance on the CleanupStack. */ static CDumpTables* NewLC(); /** * Destructor. */ virtual ~CDumpTables(); /** * Dumps the unsupported tables to CSV format file. * @param outFileName name of the output file with full path. */ void DoDumpTablesL( const TFileName& aOutFileName ); protected: /** * Second phase constructor. Leaves on failure. */ void ConstructL(); private: /** * Constructor */ CDumpTables(); /** * Template method for dumping one CommsDat table * @param class T representing the table which is dumped. */ template<class T> void DumpTableL( const TDesC* aTableName ); /** * Opens a output file for dumping. It tries to open the file * and if it does not exist then a new one created. * @param aFileName name of the file. It cannot be NULL. */ TInt OpenFileL( const TFileName& aFileName ); /** * Writes 8 bit descriptor to 16 bit unicode file in CSV format. * @param aDes the written text. It gets the ownership. */ void WriteL( HBufC8* aDes ); /** * Writes 16 bit descriptor to 16 bit unicode file in CSV format. * @param aDes the written text. It gets the ownership. */ void WriteL( HBufC16* aDes ); /** * Transform the parameter field to CSV accepted format. * @param aField the field that should be checked and transform * to CSV format if it is necessary * @return the CSV acceptable format. */ HBufC16* TransformToCSVFormatLC( const HBufC16* aField ); /** * Checks the parameter field if transformation to CSV format is * necessary. * @param aField the field which should be checked. * @return ETrue if transformation is necessary else EFalse. */ TBool CheckCSVTransformNeedL( HBufC16* aFiled ); private: // Session for CommsDat CommsDat::CMDBSession* iSession; // Fs for file handling RFs iRfs; // Output file RFileWriteStream iFile; // Counter for how many double qoutes are in the given text. TInt iNumOfDQuotes; };#endif DUMP_TABLES_H