diff -r 000000000000 -r bde4ae8d615e os/security/contentmgmt/cafstreamingsupport/source/streamagentinfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/security/contentmgmt/cafstreamingsupport/source/streamagentinfo.cpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,76 @@ +// 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: +// + +#include +#include "streamagentinfo.h" +#include + +using namespace StreamAccess; + +CStreamAgentInfo* CStreamAgentInfo::NewLC(const CImplementationInformation& aImplementationInfo) + { + CStreamAgentInfo* self = new(ELeave) CStreamAgentInfo(); + CleanupStack::PushL(self); + self->ConstructL(aImplementationInfo); + return self; + } + +CStreamAgentInfo::CStreamAgentInfo() + { + } + +CStreamAgentInfo::~CStreamAgentInfo() + { + delete iName; + delete iStreamAgentFactory; + + REComSession::DestroyedImplementation(iEcomKey); + REComSession::FinalClose(); + } + +void CStreamAgentInfo::ConstructL(const CImplementationInformation& aImplementationInfo) + { + /* Retrieve the stream agent's Name and Implementation Uid from the CImplementationInformation + * object constructed by ECOM + */ + iName = aImplementationInfo.DisplayName().AllocL(); + iImplementationUid = aImplementationInfo.ImplementationUid(); + + // Instantiate an instance of the stream agents factory using the Implementation Uid + iStreamAgentFactory = static_cast(REComSession::CreateImplementationL(iImplementationUid, iEcomKey)); + } + +const TDesC& CStreamAgentInfo::Name() const + { + return *iName; + } + +TUid CStreamAgentInfo::ImplementationUid() const + { + return iImplementationUid; + } + +TBool CStreamAgentInfo::IsKeyStreamSupportedL(const CSdpMediaField& aSdpKeyStream) const + { + /* Query the stream agent factory to determine whether the SDP key management description + * is supported + */ + return iStreamAgentFactory->IsKeyStreamSupportedL(aSdpKeyStream); + } + +CStreamAgentFactory& CStreamAgentInfo::StreamAgentFactory() const + { + return *iStreamAgentFactory; + }