--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/MMCTestDriver/MCETester/inc/CTcMCEContext.h Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2004 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 __CTCSIPCONTEXT_H__
+#define __CTCSIPCONTEXT_H__
+
+// INCLUDES
+#include "CTcContextBase.h"
+#include "CTcIAPManager.h"
+
+#include "CTcMCEProfileContainer.h"
+#include "CTcMCEReceived.h"
+#include <MCEManager.h>
+#include <MCEFCMsgExchange.h>
+#include <MCETransactionDataContainer.h>
+
+#include "SIPObserver.h"
+
+// FORWARD DECLARATIONS
+
+class CTcMCEReceiveQueue;
+class CTcMCEMultimediaAPIObserver;
+class CTcMCEEventAPIObserver;
+class CTcMCEFloorControlObserver;
+
+// CLASS DEFINITION
+/**
+ * CTcMCEContext implements the test context (MTcTestContext) for MCE testing.
+ */
+class CTcMCEContext
+ : public CTcContextBase,
+ public MSIPObserver
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Static constructor. Leaves pointer to cleanup stack.
+ *
+ * @param aCodec Reference to CTRL codec object,
+ * initialized to a valid request.
+ * @param aIAPId IAPId as selected by user from TC settings.
+
+ * @return An initialized instance of this class.
+ */
+ static CTcMCEContext* NewLC( CTcCTRLCodec& aCodec,
+ TInt aIAPId );
+
+ /// Destructor
+ ~CTcMCEContext();
+
+
+ public: // from MSIPObserver
+
+ void IncomingRequest(TUint32 aIapId,
+ CSIPServerTransaction* aTransaction);
+
+ void TimedOut(CSIPServerTransaction& aTransaction);
+
+ private:
+
+ /**
+ * Constructor.
+ *
+ * @param aCodec Reference to CTRL codec object,
+ * initialized to a valid request.
+ */
+ CTcMCEContext( CTcCTRLCodec& aCodec );
+
+ /// Default constructor. Not implemented.
+ CTcMCEContext();
+
+ /**
+ * 2nd phase constructor
+ *
+ * @param aIAPId IAPId as selected by user from TC settings.
+ * @param aIsMandatory used for determining if the SIP stack
+ * is automatically started. If default value (ETrue) is used,
+ * then SIP stack is started automatically.
+ */
+ void ConstructL( TInt aIAPId );
+
+
+ protected: // From CTcContextBase
+
+ TTcCommandBase* CreateCommandL( TTcIdentifier& aId,
+ MTcTestContext& aContext );
+
+
+ public: // New methods
+
+ /// @return Reference to MCEManager.
+ inline CMceManager& MCEManager()
+ { return *iMCEManager; };
+
+ /// @return Reference to the SIP stack.
+ inline CSIP& SIP()
+ { return *iSip; };
+
+ /// @return Reference to the default SIP profile.
+ inline CTcMCEProfileContainer& Profile()
+ { return *iSipProfile; };
+
+ /// @return Reference to the floor controller
+ inline CMceFcMsgExchange& FC()
+ { return *iFC; };
+
+ /// @return Reference to the floor control observer
+ inline CTcMCEFloorControlObserver& FCObserver()
+ { return *iFCObserver; };
+
+ /// @return Reference to the multimedia observer
+ inline CTcMCEMultimediaAPIObserver& MultimediaObserver()
+ {
+ return *iMMObserver;
+ }
+
+ /// @return Reference to the event observer
+ inline CTcMCEEventAPIObserver& EventObserver()
+ {
+ return *iEventObserver;
+ }
+
+ public: //New methods, received queue handling
+ /**
+ * 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 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 );
+
+ /**
+ * 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 Event 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& ReceivedEventItemL( TInt aTimeout );
+
+ /**
+ * Returns the first item off the Floor control 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& ReceivedFCItemL( TInt aTimeout );
+
+
+ private: // New methods
+
+
+ private: // data
+
+ // Floor controller, owned
+ CMceFcMsgExchange* iFC;
+
+ // MCE Manager, owned
+ CMceManager* iMCEManager;
+
+ // MultimediaObserver, owned
+ CTcMCEMultimediaAPIObserver* iMMObserver;
+
+ // Floor control observer, owned
+ CTcMCEFloorControlObserver* iFCObserver;
+
+ // Event API observer, owned
+ CTcMCEEventAPIObserver* iEventObserver;
+
+ /// SIP stack. Owned.
+ CSIP* iSip;
+
+ /// Default SIP profile. Owned.
+ CTcMCEProfileContainer* iSipProfile;
+
+ TMceTransactionDataContainer iDataContainer;
+
+ TInt iIAPId;
+ };
+
+#endif // __CTCSIPCONTEXT_H__