--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/piprofiler/engine/inc/WriterController.h Tue May 25 14:22:58 2010 +0300
@@ -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 <utf.h>
+#include <e32cmn.h>
+
+
+// The user-interface to the sampling device driver sued by the profiling engine
+// user includes
+#include <piprofiler/ProfilerConfig.h>
+#include <piprofiler/ProfilerVersion.h>
+#include <piprofiler/WriterPluginInterface.h>
+
+#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<CWriterPluginInterface>* GetPluginList();
+
+ void InitialisePluginStream();
+public:
+ CArrayPtrFlat<CWriterPluginInterface>* 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__