sipvoipprovider/svphold/inc/svpholdcontroller.h
branchRCL_3
changeset 21 f742655b05bf
parent 20 65a3ef1d5bd0
child 22 d38647835c2e
--- a/sipvoipprovider/svphold/inc/svpholdcontroller.h	Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-/*
-* Copyright (c) 2006 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:  Hold controller, interface class for handling hold
-*
-*/
-
-
-#ifndef SVPHOLDCONTROLLER_H
-#define SVPHOLDCONTROLLER_H
-
-#include    <e32base.h>
-#include    <mccpcallobserver.h>
-#include    "svpholdcontext.h"
-#include    "svputdefs.h"
-
-class CMceSession;
-class MSVPHoldObserver;
-class CSVPSessionBase;
-
-const TInt KErrSVPHoldErrorBase                 = -2000;
-const TInt KErrSVPHoldStateError                = KErrSVPHoldErrorBase - 1;
-const TInt KErrSVPHoldInProgress                = KErrSVPHoldErrorBase - 2;
-const TInt KErrSVPHoldResumeInProgress          = KErrSVPHoldErrorBase - 3;
-const TInt KErrSVPHoldRequestPending            = KErrSVPHoldErrorBase - 4;
-const TInt KErrSVPHoldNotHoldRequest            = KErrSVPHoldErrorBase - 5;
-const TInt KErrSVPHoldUnacceptableResponseAttribute = KErrSVPHoldErrorBase - 6;
-const TInt KErrSVPHoldLocalOldwayholdNeeded     = KErrSVPHoldErrorBase - 7;
-const TInt KErrSVPHoldRequestProcessingNotReady = KErrSVPHoldErrorBase - 8;
-
-
-/**
-*  Hold controller.
-*  @lib svp.dll
-*  @since Series 60 3.2
-*/
-class CSVPHoldController : public CBase
-    {
-public:  // Constructors and destructor
-    
-    /**
-    * Two-phased constructor.
-    */
-    static CSVPHoldController* NewL(                             
-                        CMceSession& aSession,
-                        TMceTransactionDataContainer& aContainer,
-                        MSVPHoldObserver* aObserver,
-                        TBool aIsMobileOriginated );
-
-    /**
-    * Two-phased constructor.
-    */
-    static CSVPHoldController* NewLC( 
-                        CMceSession& aSession,
-                        TMceTransactionDataContainer& aContainer,
-                        MSVPHoldObserver* aObserver,
-                        TBool aIsMobileOriginated );
-    
-    /**
-    * Destructor.
-    */
-    virtual ~CSVPHoldController();
-
-public:  // Methods
-
-    /**
-    * Holds session. If hold fails then observer method is called
-    * @since Series 60 3.2
-    * @param aSession Session object. Ownership not transferred
-    * @return Error code
-    */
-    TInt HoldSession( CMceSession* aSession );
-
-    /**
-    * Resumes session. If resume fails then observer method is called
-    * @since Series 60 3.2
-    * @param aSession Session object. Ownership not transferred
-    * @return Error code
-    */
-    TInt ResumeSession( CMceSession* aSession );
-    
-    /**
-    * Retries previous failed request
-    * @since Series 60 3.2
-    * @param aSession Session object. Ownership not transferred
-    * @return Error code
-    */
-    TInt RetryHoldRequest( CMceSession* aSession );
-    
-    /**
-    * This method must be called after hold/resume expiration time is
-    * exceeded.
-    * @since Series 60 3.2
-    */
-    void TimedOut();
-    
-    /**
-    * Examines incoming request for the case of hold/resume.
-    * @since Series 60 3.2
-    * @param aSession Session object. Ownership not transferred
-    * @return KErrSVPHoldNot if is other type than hold/resume,
-    *         system wide error code or KErrNone if succesful.
-    *         If KErrNone, observer methods are called.
-    */
-    TInt IncomingRequest( CMceSession* aSession );
-    
-    /**
-    * Examines response for hold request.
-    * @since Series 60 3.2
-    * @param aSession Session object. Ownership not transferred
-    * @param aStatusCode Status code of the response
-    * @return KErrSVPHoldNotHoldRequest if is other type than hold/resume,
-    *         system wide error code or KErrNone if succesful.
-    *         If KErrNone, observer methods are called.
-    */
-    TInt IncomingResponse( CMceSession* aSession, TInt aStatusCode );
-        
-    /**
-    * Returns ETrue if holding/resuming session is ongoing.
-    * @since Series 60 3.2
-    * @return ETrue if holding/resuming of session is ongoing 
-    */
-    TBool HoldInProgress() const;
-    
-    /**
-    * Returns ETrue if holding/resuming error caused hold state
-    * to roll back to its previous state
-    * @since Series 60 3.2
-    * @return ETrue if holding/resuming rolleed back 
-    */
-    TBool HoldRolledBack() const;
-    
-    /**
-    * Returns Hold failed -boolean value. After this function call
-    * flag is cleared.
-    * @since Series 60 3.2
-    * @return ETrue if hold failed, EFalse otherways
-    */
-    TBool HoldFailed();
-
-    /**
-    * Returns Resume failed -boolean value. If resume has failed, session
-    * must be terminated, and it cannot do before MCE session state is
-    * in connected state.
-    * @since Series 60 3.2
-    * @return ETrue if resume failed, EFalse otherways
-    */
-    TBool ResumeFailed();
-    
-    /**
-    * Continues processing of local hold/resume request.
-    * @since Series 60 3.2
-    * @param aSession MCE session
-    * @return error code
-    */
-    TInt ContinueHoldProcessing( CMceSession& aSession );
-    
-    /**
-    * Hold / Resume request has failed
-    * @since Series 60 3.2
-    * @param aSession MCE session
-    * @param aStatusCode reason
-    * @param aBase SVP session base
-    * @return error code
-    */
-    TInt RequestFailed( CMceSession& aSession, TInt aStatusCode, CSVPSessionBase& aBase );
-    
-    /**
-    * Checks if currently crossover situation
-    * @since Series 60 3.2
-    * @param aBase SVP session base
-    */
-    void CheckCrossOver( CSVPSessionBase& aBase );
-    
-    /**
-    * Returns session hold state
-    * @since Series 60 3.2
-    * @return Current hold state (Holded only if local stream on hold)
-    */
-    TSVPSessionHoldState HoldState() const;
-
-    /**
-    * Returns session hold request type
-    * @since Series 60 3.2
-    * @return Current hold request type
-    */
-    TSVPHoldRequestType HoldRequest() const;
-
-    /**
-    * After completed & succesful IN / OUT Request, returns occurred event.
-    * @since Series 60 3.2
-    * @return Occurred event to be informed to client application
-    */
-    MCCPCallObserver::TCCPCallEvent HoldEvent();
-    
-    /**
-    * Sets mute state to Hold Controller
-    * @since Series 60 3.2
-    * @param aMuted Boolean value for mute value
-    */
-    void Muted( TBool aMuted );
-
-    /**
-    * Refreshes hold state in local hold state when non-hold re-invite received
-    * @since Series 60 3.2
-    * @param
-    */
-    void RefreshHoldStateL();
-
-private:
-
-    /**
-    * C++ default constructor.
-    */
-    CSVPHoldController();
-
-    /**
-    * By default Symbian 2nd phase constructor is private.
-    */
-    void ConstructL( CMceSession& aSession,
-                     TMceTransactionDataContainer& aContainer,
-                     MSVPHoldObserver* aObserver,
-                     TBool aIsMobileOriginated );
-    
-    /**
-    * HoldAllowed
-    */
-    TBool HoldAllowed();
-    
-    /**
-    * ResumeAllowed
-    */
-    TBool ResumeAllowed();
-    
-    /**
-    * IncomingRequestAllowed
-    */
-    TBool IncomingRequestAllowed();
-        
-    /**
-    * IncomingResponseAllowed
-    */
-    TBool IncomingResponseAllowed();
-
-    /**
-    * Refresh hold state
-    * @since S60 3.2
-    * @param aMediaStream Representation of MCE media stream
-    */
-    void RefreshL( CMceMediaStream& aMediaStream );
-
-private: // data
-
-    // Context of hold
-    CSVPHoldContext* iContext;
-
-    // Previous hold state    
-    TSVPHoldState iPreviousHoldState;
-    
-    // Flag for readyness of hold request
-    TBool iHoldRequestCompleted;
-    
-    // Desired hold request for re-Invite crossover case
-    TSVPHoldDesiredTransition iHoldRequest;
-    
-    // Reinvite crossover flag (race condition)
-    TBool iReinviteCrossover;
-
-private:
-
-    // For testing
-    SVP_UT_DEFS
-		
-    };
-
-#endif      // SVPHOLDCONTROLLER_H  
-