diff -r d27dfa8884ad -r da2cedce4920 piprofiler/plugins/DiskWriterPlugin/inc/DiskWriterPlugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/piprofiler/plugins/DiskWriterPlugin/inc/DiskWriterPlugin.h Tue May 25 14:22:58 2010 +0300 @@ -0,0 +1,133 @@ +/* +* 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: +* +*/ + + +#ifndef __DISKWRITERPLUGIN_H__ +#define __DISKWRITERPLUGIN_H__ + +// Include Files +#include +#include +#include +#include // CBase +#include // TBuf +#include + +_LIT(KFileOutShortName, "dsw"); + +// forward declarations +class CDiskWriterHandler; +class CProfilerSampleStream; + +// Class Definitions + +class CDiskWriterPlugin : public CWriterPluginInterface + { +public: + // new function + static CDiskWriterPlugin* NewL(const TUid aImplementationUid, TAny* aInitParams); + ~CDiskWriterPlugin(); + + void DoCancel(); + + +public: // new functions + + TInt Start(); + + void Stop(); + + void GetValue( const TWriterPluginValueKeys aKey, TDes& aValue ); + + void SetValue( const TWriterPluginValueKeys aKey, TDes& aValue ); + + TUid Id() const; + + void GetWriterVersion(TDes* aDes); + + TUint32 GetWriterType(); + + void HandleError(TInt aError); + + void WriteData(); + + void SetStream(CProfilerSampleStream& aStream) { iStream = &aStream; } + +private: // new functions + CDiskWriterPlugin(const TUid aImplementationUid); + void ConstructL(); + + void GetValueL( const TWriterPluginValueKeys aKey, TDes& aValue ); + void SetValueL( const TWriterPluginValueKeys aKey, TDes& aValue ); + TBool GetEnabled(); + + TInt DisplayNotifier(const TDesC& aLine1, const TDesC& aLine2, const TDesC& aButton1, const TDesC& aButton2); +public: + CProfilerSampleStream* iStream; +private: // data + + TBuf<256> iFileName; + TInt iWriterType; + TInt iWriterId; + CDiskWriterHandler* iWriterHandler; + RProperty iErrorStatus; + }; + +/* + * + * Definition of class CDiskWriterHandler + * + */ +class CDiskWriterHandler : public CActive //CBase + { +public: + + + static CDiskWriterHandler* NewL(CDiskWriterPlugin* aWriter); + ~CDiskWriterHandler(); + + void StartL(); + + void Stop(); + void RunL(); + TInt RunError(TInt aError); + + void DoCancel(); + void WriteBufferToOutput(TBapBuf* aBuf); + void Reset(); + + TInt TestFile(const TDesC& totalPrefix); +private: + CDiskWriterHandler(CDiskWriterPlugin* aWriter); + + void ConstructL(); + void WriteMemBufferToFile(TDesC8& aDes, TRequestStatus& aStatus); + static TInt Write(TAny* aObject); + void HandleFullBuffers(); + void DoWrite(); + +private: + RFile iFile; + RFs iFs; + TBuf<256> iFileName; + CDiskWriterPlugin* iWriter; + TBapBuf* iBufferBeingWritten; + TBool iStopping; + }; + +#endif // __DEBOUTWRITERPLUGIN_H__ +