diff -r f0f2b8682603 -r 3ff3fecb12fe sysanadatacapture/piprofiler/piprofiler/engine/inc/WriterController.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysanadatacapture/piprofiler/piprofiler/engine/inc/WriterController.h Thu Feb 11 15:52:57 2010 +0200 @@ -0,0 +1,115 @@ +/* +* 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 __WRITERCONTROLLER_H__ +#define __WRITERCONTROLLER_H__ + +// system includes +#include +#include + + +// The user-interface to the sampling device driver sued by the profiling engine +// user includes +#include +#include +#include + +#include "WriterPluginLoader.h" + +/* + * Forward declarations + */ +class TBapBuf; +class CWriterPluginLoader; +class CWriterPluginInterface; + +/** + * The writer controller for handling the available Data writer plugins. + */ + +class CWriterController : public CBase, MWriterPluginLoadObserver + { + +public: + static CWriterController* NewL(CProfilerSampleStream& aStream); + void ConstructL(); + + CWriterController(CProfilerSampleStream& aStream); + ~CWriterController(); + + /** + * + * Methods for user mode sampling + * + **/ + + /** Initialise the user mode samplers **/ + void InitialiseWriterListL(); + + /* Overrider of MSamplerPluginLoaderObserver class **/ + void HandlePluginLoaded( KWriterPluginLoaderStatus /*aStatus*/ ); + + /* returns the matching plugin Uid */ + TUid GetPluginUID(TInt traceId); + + CWriterPluginInterface* GetActiveWriter(); + + /** Returns the sampler type (kernel/user) **/ + TUint32 GetWriterType(TUint32 samplerId); + + /** Set additional settings for a trace **/ + TInt AdditionalUserTraceSettings(TInt traceId, TInt settings); + + /** Set data stream for samplers **/ + //void SetSampleStream(RProfilerSampleStream* iStream); + + TInt StartSelectedPlugin(); + + void StopSelectedPlugin(); + + /** Set selected plugin active **/ + void SetPluginActive(TUid uid, const TWriterPluginValueKeys aKey); + + TInt SetPluginSettings(TUid aUid, TDes& aDes); + + /** Get settings for a specific plugin **/ + void GetPluginSettings(TUid uid, TDes& aVal); + + /** Request stream read **/ + //void FillThisStreamBuffer(TBapBuf* aBuffer, TRequestStatus& aStatus); + + CWriterPluginInterface* GetPlugin(TUid aUid); + + CArrayPtrFlat* GetPluginList(); + + void InitialisePluginStream(); +public: + CArrayPtrFlat* iPluginArray; + + // Asynchronous loader for the writer plug-ins. + CWriterPluginLoader* iPluginLoader; + + // UID of the selected plugin in the container's lbx. + TUid iSelectedPluginUid; + + CProfilerSampleStream& iStream; +}; + + +#endif // __WRITERCONTROLLER_H__