diff -r 7fdc9a71d314 -r 8ad140f3dd41 stif/Logger/inc/FileOutput.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stif/Logger/inc/FileOutput.h Wed Oct 13 16:17:58 2010 +0300 @@ -0,0 +1,258 @@ +/* +* Copyright (c) 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: This file contains the header file of the CFileOutput. +* +*/ + +#ifndef FILEOUTPUT_H +#define FILEOUTPUT_H + +// INCLUDES +#include + +#include "Output.h" + +// CONSTANTS +// None + +// MACROS +// None + +// DATA TYPES +// None + +// FUNCTION PROTOTYPES +// None + +// FORWARD DECLARATIONS +// None + +// CLASS DECLARATION + +// DESCRIPTION +// CFileOutput is a STIF Test Framework StifLogger class. +// Class contains a file logging operations. +class CFileOutput + :public COutput + { + public: // Enumerations + + private: // Enumerations + + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CFileOutput* NewL( const TDesC& aTestPath, + const TDesC& aTestFile, + CStifLogger::TLoggerType aLoggerType, + TBool aOverWrite, + TBool aWithTimeStamp, + TBool aWithLineBreak, + TBool aWithEventRanking, + TBool aThreadIdToLogFile, + TBool aCreateLogDir, + TInt aStaticBufferSize, + TBool aUnicode ); + + /** + * Destructor. + */ + ~CFileOutput(); + + public: // New functions + + /** + * Create a directory. + */ + void CreateDirectoryL( const TDesC& aTestPath ); + + /** + * Open an existing file. + */ + void OpenExistingFileL( const TDesC& aTestPath, + const TDesC& aTestFile ); + + /** + * Create a new file. + */ + void CreateNewFileL( const TDesC& aTestPath, const TDesC& aTestFile ); + + /** + * Write log information or data to the file. + * 16 bit. + */ + TInt Write( TBool aWithTimeStamp, + TBool aWithLineBreak, + TBool aWithEventRanking, + const TDesC& aData ); + + /** + * Write log information or data to the file. + * 8 bit. + */ + TInt Write( TBool aWithTimeStamp, + TBool aWithLineBreak, + TBool aWithEventRanking, + const TDesC8& aData ); + + /** + * Add event ranking, specify number to line (1-byte version). + */ + void EventRanking( TPtr8& aData ); + + /** + * Add event ranking, specify number to line (2-byte version). + */ + void EventRanking( TPtr& aData ); + + /** + * Add date, time and line break to data (1-byte version). + */ + void AddTimeStampToData( TPtr8& aData ); + + /** + * Add date, time and line break to data (2-byte version). + */ + void AddTimeStampToData( TPtr& aData ); + + /** + * Get date and time. + */ + void GetDateAndTime( TStifLoggerTimeStamp& aDataAndTime ); + + /** + * Make file type. + */ + void FileType( const TDesC& aTestFile, TFileType& aFileType ); + + /** + * Generate thread id to test file name. + */ + void TestFileWithThreadId( const TDesC& aTestFile, + TFileName& aNewTestFile ); + + public: // Functions from base classes + + protected: // New functions + + protected: // Functions from base classes + + private: + + /** + * C++ default constructor. + */ + CFileOutput( CStifLogger::TLoggerType aLoggerType, + TBool aWithTimeStamp, + TBool aWithLineBreak, + TBool aWithEventRanking, + TBool aThreadIdToLogFile ); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL( const TDesC& aTestPath, + const TDesC& aTestFile, + TBool aOverWrite, + TBool aCreateLogDir, + TInt aStaticBufferSize, + TBool aUnicode ); + + public: // Data + + protected: // Data + + private: // Data + + /** + * Log file directory name, file name and file type. + */ + TFileName iFileAndDirName; + + /** + * Indicates file type. + */ + CStifLogger::TLoggerType iLoggerType; + + /** + * Time stamp indicator. + */ + TBool iWithTimeStamp; + + /** + * Line break indicator. + */ + TBool iWithLineBreak; + + /** + * Event ranking indicator. + */ + TBool iWithEventRanking; + + /** + * Indicator to thread id adding to end of the log file + */ + TBool iThreadIdToLogFile; + + /** + * Indicator to thread id adding to end of the log file + */ + TBool iCreateLogDir; + + /** + * For the file handling + */ + RFile iFile; + + /** + * For the file session handling + */ + RFs iFileSession; + + /** + * Is file open indicator + */ + TInt iIsFileOpen; + + /** + * DataHBuf for logging purposes + */ + HBufC8 * iDataHBuf8; + + // @js + TInt iStaticBufferSize; + + /** + * Determines if file has to be in unicode format + */ + TBool iUnicode; + + /** + * DataHBuf for logging purposes + */ + HBufC16* iDataHBuf16; + + public: // Friend classes + + protected: // Friend classes + + private: // Friend classes + + }; + +#endif // FILEOUTPUT_H + +// End of File