tracesrv/tracecore/btrace_handler/src/TraceCorePluginIf.cpp
changeset 56 aa2539c91954
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tracesrv/tracecore/btrace_handler/src/TraceCorePluginIf.cpp	Fri Oct 08 14:56:39 2010 +0300
@@ -0,0 +1,136 @@
+// Copyright (c) 2007-2010 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:
+// TraceCore Plugin Interface
+// 
+
+//- Include Files  ----------------------------------------------------------
+
+#include "TraceCorePluginIf.h" 
+#include "TraceCoreDebug.h"
+#include "TraceCoreMediaIfCallback.h"
+#include "TraceCoreMediaPlugin.h"
+#include "TraceCoreSubscriber.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "TraceCorePluginIfTraces.h"
+#endif
+
+
+/**
+ * Constructor
+ */
+DTraceCorePluginIf::DTraceCorePluginIf()
+: DTraceCoreMediaIf( KMediaIfSendSupported | KMediaIfPluginSupported )
+, iMediaPlugin( NULL )
+    {
+    }
+
+
+/**
+ * Destructor
+ */
+DTraceCorePluginIf::~DTraceCorePluginIf()
+    {
+    iMediaPlugin = NULL;
+    }
+
+
+/**
+ * Initializes the plugin IF
+ *
+ * @param aCallBack Callback to TraceCore
+ */
+TInt DTraceCorePluginIf::Init( MTraceCoreMediaIfCallback& aCallback )
+    {
+    iCallback = &aCallback;
+    return KErrNone;
+    }
+
+/**
+ * Sends messages to plug-in
+ * 
+ * @param aMsg Message to be sent.
+ * @return KErrNone if send successful
+ */
+TInt DTraceCorePluginIf::Send( TTraceMessage& aMsg )
+    {
+    OstTraceExt1( TRACE_FLOW, DTRACECOREPLUGINIF_SEND_ENTRY, "> DTraceCorePluginIf::Send. MsgId:0x%hhx", aMsg.iMessageId );
+    TInt retval = KErrNotSupported;
+    if ( iMediaPlugin != NULL )
+        {
+        retval = iMediaPlugin->SendMessage( aMsg );
+        }
+    OstTrace1( TRACE_FLOW, DTRACECOREPLUGINIF_SEND_EXIT, "< DTraceCorePluginIf::Send %d", retval );
+    return retval;
+    }
+    
+
+/**
+ * Message was received by plug-in
+ * 
+ * @param aMsg The message that was received
+ */
+void DTraceCorePluginIf::MessageReceived( TTraceMessage &aMsg )
+    {
+    OstTraceExt1( TRACE_FLOW, DTRACECOREPLUGINIF_MESSAGERECEIVED_ENTRY, "> DTraceCorePluginIf::MessageReceived. MsgId:0x%hhx", aMsg.iMessageId );
+    if ( iCallback != NULL )
+        {
+        iCallback->SetSenderMedia( this ); // Added for SPLIT
+        iCallback->MessageReceived( aMsg );
+        }
+    }
+
+
+/**
+ * Registers a media Plug-In
+ */
+TInt DTraceCorePluginIf::RegisterPlugin( DTraceCoreMediaPlugin& aPlugin )
+    {
+    OstTrace1( TRACE_FLOW, DTRACECOREPLUGINIF_REGISTERPLUGIN_ENTRY, "> DTraceCorePluginIf::RegisterPlugin 0x%x", ( TUint )&( aPlugin ) );
+    TInt retval = KErrNone;
+    
+    // Register given media Plug-In
+    if ( iMediaPlugin == NULL )
+        {
+        iMediaPlugin = &aPlugin;
+        retval = KErrNone;
+        }
+    
+    // Plug-In was already registered
+    else
+        {
+        retval = KErrNotSupported;
+        }
+    OstTrace1( TRACE_FLOW, DTRACECOREPLUGINIF_REGISTERPLUGIN_EXIT, "< DTraceCorePluginIf::RegisterPlugin %d", retval );
+    
+    return retval;
+    }
+
+
+/**
+ * Unregisters a media Plug-In
+ */
+void DTraceCorePluginIf::UnregisterPlugin( DTraceCoreMediaPlugin& aPlugin )
+    {
+    OstTrace1( TRACE_FLOW, DTRACECOREPLUGINIF_UNREGISTERPLUGIN_ENTRY, "> DTraceCorePluginIf::UnregisterPlugin 0x%x", ( TUint )&( aPlugin ) );
+    
+    // Unregister given media Plug-In
+    if ( iMediaPlugin == &aPlugin )
+        {
+        OstTrace1( TRACE_NORMAL, DTRACECOREPLUGINIF_UNREGISTERPLUGIN_UNREGISTERED, "DTraceCorePluginIf::UnregisterPlugin - Plugin unregistered 0x%x", ( TUint )&( aPlugin ) );
+        iMediaPlugin = NULL;
+        }
+    }
+
+// End of File