multimediacommsengine/tsrc/MMCTestDriver/MCETester/inc/CTcMCEMultimediaAPIObserver.h
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/MMCTestDriver/MCETester/inc/CTcMCEMultimediaAPIObserver.h	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,211 @@
+/*
+* 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:    See class definition below.
+*
+*/
+
+
+
+#ifndef __CTcMCEMultimediaAPIObserver_H__
+#define __CTcMCEMultimediaAPIObserver_H__
+
+
+// INCLUDES
+
+#include <MCESessionObserver.h>
+#include <MceInSessionObserver.h>
+#include <MceStreamObserver.h>
+#include <MceRtpObserver.h>
+#include <mcetransactionobserver.h>
+#include <mceintransactionobserver.h>
+#include "CTcMCEReceiveQueue.h"
+
+
+// FORWARD DECLARATIONS
+class CTcMCEContext;
+class CTcMCEReceived;
+class TMceTransactionDataContainer;	
+
+// CLASS DEFINITION
+/**
+ * CTcMCEMultimediaAPIObserver observes all events defined in 
+ * multimedia API.
+ */
+
+class CTcMCEMultimediaAPIObserver
+	: public CBase,
+	  public MMceSessionObserver,
+	  public MMceInSessionObserver,
+	  public MMceStreamObserver,
+      public MMceRtpObserver,
+      public MMceTransactionObserver,
+      public MMceInTransactionObserver
+	{
+	
+	public:	// Constructors and destructor
+
+		/**
+		 * Static constructor.
+		 *
+		 * @param aContext Reference to test context object.
+		 * @return An initialized instance of this class.
+		 */
+		static CTcMCEMultimediaAPIObserver* NewL( CTcMCEContext& aContext );
+
+		/// Destructor
+		~CTcMCEMultimediaAPIObserver();
+
+	private:
+
+		/**
+		 * Constructor.
+		 *
+		 * @param aContext Reference to test context object.
+		 */
+		CTcMCEMultimediaAPIObserver( CTcMCEContext& aContext );
+
+		/// Default constructor. Not implemented.
+		CTcMCEMultimediaAPIObserver();
+
+		/// 2nd phase constructor
+		void ConstructL();
+
+	public: // new functions
+	
+		/**
+		 * Returns the first item off the session receive queue (FIFO). 
+		 * If no items are present, the function will wait for aTimeout seconds
+		 * and then try fetching again.
+		 *
+		 * @param aTimeOut Time in seconds waited for items to arrive.
+		 */
+		CTcMCEReceived& ReceivedSessionItemL( TInt aTimeout );
+		
+		CTcMCEReceived& ReceivedUpdatedSessionItemL( TInt aTimeout );
+
+		/**
+		 * Returns the first item off the Stream receive queue (FIFO). 
+		 * If no items are present, the function will wait for aTimeout seconds
+		 * and then try fetching again.
+		 *
+		 * @param aTimeOut Time in seconds waited for items to arrive.
+		 */
+		CTcMCEReceived& ReceivedStreamItemL( TInt aTimeout );
+
+		/**
+		 * Returns the first item off the RTP receive queue (FIFO). 
+		 * If no items are present, the function will wait for aTimeout seconds
+		 * and then try fetching again.
+		 *
+		 * @param aTimeOut Time in seconds waited for items to arrive.
+		 */
+		CTcMCEReceived& ReceivedRTPItemL( TInt aTimeout );	
+
+		
+    public: // from MMceInSessionObserver
+
+        void IncomingSession(
+	                CMceInSession* aSession,
+    				TMceTransactionDataContainer* aContainer );
+    	void IncomingUpdate(
+					CMceSession& aOrigSession, 
+					CMceInSession* aUpdatedSession,
+    				TMceTransactionDataContainer* aContainer ) ;
+
+	public: // fron MMceSessionObserver
+	
+		void SessionStateChanged(
+                    CMceSession& aSession,
+                    TMceTransactionDataContainer* aContainer );
+		
+		void SessionConnectionStateChanged(
+                    CMceSession& aSession,
+                    TBool aActive);
+                    
+        void Failed( CMceSession& aSession, TInt aError );
+        
+		void UpdateFailed(
+	    			CMceSession& aSession,
+	    			TMceTransactionDataContainer* aContainer ) ;
+	    			
+	public: // from MMceStreamObserver
+ 
+ 	   	void StreamStateChanged( 
+                   CMceMediaStream& aStream);
+
+		void StreamStateChanged( 
+					CMceMediaStream& aStream, 
+					CMceMediaSink& aSink);
+    
+  	  	void StreamStateChanged(
+                    CMceMediaStream& aStream,
+                    CMceMediaSource& aSource);       	
+        
+	public: // from MMceRtpObserver
+
+        void SRReceived(
+        			CMceSession& aSession,
+				    CMceMediaStream& aStream);
+
+        void RRReceived(
+        			CMceSession& aSession,
+				    CMceMediaStream& aStream);
+		
+        void InactivityTimeout(
+					CMceMediaStream& aStream,
+					CMceRtpSource& aSource); 
+					
+        void SsrcAdded( 
+        			CMceMediaStream& aStream,
+        			CMceRtpSource& aSource,
+        			TUint aSsrc );
+
+        void SsrcRemoved( 
+        			CMceMediaStream& aStream,
+        			CMceRtpSource& aSource,
+        			TUint aSsrc );
+
+	public: // from MMceTransactionObserver
+
+		void TransactionResponse(
+	    			CMceSession& aSession,
+	    			TMceTransactionId aTransactionId,
+	    			TMceTransactionDataContainer* aContainer );
+
+		void TransactionFailed( 
+                    CMceSession& aSession,
+	    			TMceTransactionId aTransactionId, 
+	    			TInt aError );
+
+    public: // from MMceInTransactionObserver
+
+    	void IncomingRequest(
+        			const TDesC8& aMethod,
+					CMceSession& aSession,
+	    			TMceTransactionId aTransactionId,
+	    			TMceTransactionDataContainer* aContainer );
+
+	private: // data
+
+		/// Reference to the test context. Not owned.
+		CTcMCEContext& iContext;
+		
+		CTcMCEReceiveQueue* iSessionQueue;
+		CTcMCEReceiveQueue* iUpdatedSessionQueue;
+		CTcMCEReceiveQueue* iStreamQueue;
+		CTcMCEReceiveQueue* iRTPQueue;
+
+	};
+
+#endif // __CTcMCEMultimediaAPIObserver_H__