multimediacommsengine/tsrc/MMCTestDriver/MCETester/src/CTcMCEFloorControlObserver.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/MMCTestDriver/MCETester/src/CTcMCEFloorControlObserver.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2005 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:    Implementation.
+*
+*/
+
+
+
+#include "CTcMCEFloorControlObserver.h"
+#include "CTcMCEContext.h"
+
+#include "MCEConstants.h"
+
+#include "CTcMCEReceived.h"
+#include "CTcMCEReceiveQueue.h"
+
+
+
+CTcMCEFloorControlObserver* CTcMCEFloorControlObserver::NewL( 
+			CTcMCEContext& aContext )
+	{
+	CTcMCEFloorControlObserver* self = 
+			new (ELeave) CTcMCEFloorControlObserver( aContext );
+			
+	CleanupStack::PushL( self );
+	self->ConstructL();
+	CleanupStack::Pop( self );
+	
+	return self;
+	}
+
+CTcMCEFloorControlObserver::CTcMCEFloorControlObserver(
+			CTcMCEContext& aContext):
+	iContext(aContext)
+	{
+	}
+
+void CTcMCEFloorControlObserver::ConstructL()
+	{
+	iFCQueue = CTcMCEReceiveQueue::NewL( iContext );
+	}
+
+CTcMCEFloorControlObserver::~CTcMCEFloorControlObserver()
+	{
+	delete iFCQueue;
+	}
+
+
+
+CTcMCEReceived& CTcMCEFloorControlObserver::ReceivedFCItemL( TInt aTimeout )
+	{
+	return iFCQueue->ReceivedItemL( aTimeout );	
+	}
+
+// -- From MMceFcMsgObserver ---------------------------------------------------
+
+void CTcMCEFloorControlObserver::FCMsgReceived(
+			CMceSession& aSession, 
+			HBufC8* aMessage)
+	{
+	TRAPD( err, {	
+		
+		CTcMCEReceived* received = new(ELeave) CTcMCEReceived;
+		received->SetSession( &aSession ); 
+		received->SetFCMessage( aMessage );		
+
+		iFCQueue->QueueReceivedL( received );	
+		} )	
+	__ASSERT_ALWAYS( !err, User::Panic( KMceErrOOMInObserver, err ));
+	}
+
+void CTcMCEFloorControlObserver::FCMsgErrorOccurred( 
+			CMceSession& aSession, 
+			TInt aError )
+	{
+	TRAPD( err, {
+		CTcMCEReceived* received = new(ELeave) CTcMCEReceived;
+		received->SetSession( &aSession ); 
+		received->SetError( aError );		
+
+		iFCQueue->QueueReceivedL( received );
+		} )	
+	__ASSERT_ALWAYS( !err, User::Panic( KMceErrOOMInObserver, err ));	
+	}