contentmgmt/cafstreamingsupport/test/streamingtestagent/source/plugin/teststreamagentfactory.cpp
branchRCL_3
changeset 43 2f10d260163b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contentmgmt/cafstreamingsupport/test/streamingtestagent/source/plugin/teststreamagentfactory.cpp	Mon Mar 15 12:46:43 2010 +0200
@@ -0,0 +1,93 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "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:
+// Implements the test stream agent factory plug-in.
+// 
+//
+
+#include "teststreamagentfactory.h"
+#include "srautils.h"
+
+using namespace StreamAccess;
+
+
+static const TImplementationProxy ImplementationTable[] = 
+	{
+	IMPLEMENTATION_PROXY_ENTRY(KTestStreamAgentFactoryImpId, CTestStreamAgentFactory::CreateTestAgentL)
+	};
+	
+	
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+/**
+	Standard ECOM factory
+*/
+	{
+	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+	return ImplementationTable;
+	}
+	
+//
+//CTestStreamAgentFactory
+//
+
+CTestStreamAgentFactory::CTestStreamAgentFactory()
+/**
+	Constructor.
+ */
+:	CStreamAgentFactory()
+ 	{
+ 	//empty
+ 	}
+ 	
+
+CTestStreamAgentFactory::~CTestStreamAgentFactory()
+/**
+	Destructor
+ */
+	{
+	//empty
+	}
+	
+
+CStreamAgentFactory* CTestStreamAgentFactory::CreateTestAgentL()
+/**
+	Factory method that instantiates a new test stream agent factory ECOM plug-in.
+
+	@return A pointer to the new test stream agent factory object.
+*/
+	{
+	CTestStreamAgentFactory *self = new(ELeave) CTestStreamAgentFactory();
+	return self;
+	}
+
+CAgentKeyStreamDecoder* CTestStreamAgentFactory::GetKeyStreamDecoderL(const CKeyStreamSink& aKeyStreamSink,
+		 															  const CSdpMediaField& aSdpKeyStream,
+		 				    										  const CSdpDocument& aSdpDoc)
+/**
+ 	@see CStreamAgentFactory::GetKeyStreamDecoderL
+ */
+	{
+	return CTestAgentKeyStreamDecoder::NewL(aKeyStreamSink, aSdpKeyStream, aSdpDoc); 
+	}
+
+TBool CTestStreamAgentFactory::IsKeyStreamSupportedL(const CSdpMediaField& aSdpKeyStream)
+/**
+ 	Function to determine whether the test stream agent supports the key management scheme 
+ 	specified in the SDP key stream definition
+ 	@param aSdpKeyStream Contains the metadata for the SDP key management scheme of the stream
+ 	@return ETrue if the test stream agent recognises the SDP format and is able to decode the key stream
+	@return EFalse if the test stream agent fails to recofnise the SDP format or is unable to decode the key stream
+ */
+	{
+	return CheckKeyStreamSupportedL(aSdpKeyStream, KSupportedKmsIds());
+	}