dvrengine/CommonRecordingEngineClient/src/CCRMsgQueueObserver.cpp
branchRCL_3
changeset 22 826cea16efd9
parent 21 798ee5f1972c
child 23 13a33d82ad98
--- a/dvrengine/CommonRecordingEngineClient/src/CCRMsgQueueObserver.cpp	Thu Aug 19 10:54:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-/*
-* Copyright (c) 2007 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:    Offers interface to RMsgQueue in civilized manner.*
-*/
-
-
-
-
-// INCLUDE FILES
-#include "CCRMsgQueueObserver.h"
-#include <ipvideo/MCREngineObserver.h>
-#include <ipvideo/CRTypeDefs.h>
-#include "videoserviceutilsLogger.h"
-
-// CONSTANTS
-// None
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CCRMsgQueueObserver* CCRMsgQueueObserver::NewL()
-    {
-    CCRMsgQueueObserver* self = new( ELeave ) CCRMsgQueueObserver();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::CCRMsgQueueObserver()
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CCRMsgQueueObserver::CCRMsgQueueObserver() : CActive( EPriorityAbsoluteHigh )
-    {
-    // Note! CActive's priority must be absolute high for ensure that 
-    // the messages are arrived in right order to VIA.  
-    CActiveScheduler::Add( this );
-    }
-
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CCRMsgQueueObserver::ConstructL()
-    {
-    LOG( "CCRMsgQueueObserver::ConstructL() in" );
-    
-    RProcess process;
-    TInt handleId( process.Handle() );
-    TBuf<KCRQueueNameLength> queueName;
-    queueName.Format(KCRMsgQueueName, handleId);
-    queueName.Trim();
-    TInt err( iQueue.CreateGlobal( queueName, 
-                                   sizeof( SCRQueueEntry ) ) ); 
-    LOG2( "CCRMsgQueueObserver createglobal %S = %d", &queueName, err );
-    err = iQueue.OpenGlobal( queueName ) ;                            
-    LOG1( "CCRMsgQueueObserver openglobal = %d", err );
-    User::LeaveIfError( err );
-    iQueue.NotifyDataAvailable( iStatus ); 
-    LOG1( "CCRMsgQueueObserver queue message size is %d", iQueue.MessageSize() );
-    SetActive(); 
-
-    LOG( "CCRMsgQueueObserver::ConstructL() out" );
-    }
-    
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::~CCRMsgQueueObserver()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CCRMsgQueueObserver::~CCRMsgQueueObserver()
-    {
-    LOG( "CCRMsgQueueObserver::~CCRMsgQueueObserver() in" );
-
-    Cancel();
-    iQueue.Close(); 
-    iObservers.Reset();     
-    iObservers.Close(); 
-
-    LOG( "CCRMsgQueueObserver::~CCRMsgQueueObserver() out" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::RunL()
-// From CActive
-// -----------------------------------------------------------------------------
-//
-void CCRMsgQueueObserver::RunL()
-    {
-    LOG1( "CCRMsgQueueObserver::RunL() in, iStatus: %d", iStatus.Int() );
-    
-    if ( iStatus.Int() == KErrNone ) 
-        {
-        TInt i( 0 ); 
-        if ( iQueue.Receive( iReceivedMessage ) == KErrNone )
-            {
-            if ( !iReceivedMessage.iSessionId || // or our id has not been set yet
-                  iReceivedMessage.iSessionId == iSessionId ) // if the id matches
-                {
-                switch ( iReceivedMessage.iMsg )
-                    {
-                    case ECRMsgQueueAuthenticationNeeded:
-                        LOG( "CCRMsgQueueObserver EAuthenticationFailed" );
-                        SCRObserverMsg authNotify; 
-                        authNotify.iMsg = ECRAuthenticationNeeded;
-                        authNotify.iErr = iReceivedMessage.iErr; 
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( authNotify ) );
-                            }                       
-                        
-                        break;
-
-                    case ECRMsgQueueAttachCompleted:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueAttachCompleted" );
-                        SCRObserverMsg iapNotify; 
-                        iapNotify.iMsg = ECRAttachCompleted;
-                        iapNotify.iErr = iReceivedMessage.iErr; 
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( iapNotify ) );
-                            }                       
-                        }
-                        break;
-
-                    case ECRMsgQueueConnectionError:
-                        {
-                        LOG1( "CCRMsgQueueObserver ECRMsgQueueConnectionError, iReceivedMessage.iErr: %d",
-                                                                               iReceivedMessage.iErr );
-                        SCRObserverMsg iapNotify; 
-                        iapNotify.iMsg = ECRConnectionError;
-                        iapNotify.iErr = iReceivedMessage.iErr; 
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( iapNotify ) );
-                            }                       
-                        }
-                        break;
-
-                    case ECRMsgQueueNotEnoughBandwidth:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueNotEnoughBandwidth" );
-                        SCRObserverMsg iapNotify; 
-                        iapNotify.iMsg = ECRNotEnoughBandwidth;
-                        iapNotify.iErr = iReceivedMessage.iErr; 
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( iapNotify ) );
-                            }                       
-                        }
-                        break;
-
-                    case ECRMsgQueueSwitchingToTcp:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueSwitchingToTcp" );
-                        SCRObserverMsg iapNotify; 
-                        iapNotify.iMsg = ECRSwitchingToTcp;
-                        iapNotify.iErr = iReceivedMessage.iErr; 
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( iapNotify ) );
-                            }                       
-                        }
-                        break;
-
-                    case ECRMsgQueueNormalEndOfStream:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueNormalEndOfStream" );
-                        SCRObserverMsg iapNotify; 
-                        iapNotify.iMsg = ECRNormalEndOfStream;
-                        iapNotify.iErr = iReceivedMessage.iErr; 
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( iapNotify ) );
-                            }                       
-                        }
-                        break;
-                                            
-                    case ECRMsgQueueStreamIsLiveStream:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgStreamIsLiveStream" );
-                        SCRObserverMsg liveStreamNotify; 
-                        liveStreamNotify.iMsg = ECRStreamIsLiveStream;
-                        liveStreamNotify.iErr = iReceivedMessage.iErr; 
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( liveStreamNotify ) );
-                            }                       
-                        }
-                        break;
-
-                    case ECRMsgQueueStreamIsRealMedia:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueStreamIsRealMedia" );
-                        SCRObserverMsg realStreamNotify; 
-                        realStreamNotify.iMsg = ECRRealNetworksStream;
-                        realStreamNotify.iErr = iReceivedMessage.iErr; 
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( realStreamNotify ) );
-                            }                       
-                        }
-                        break;
-
-                    case ECRMsgQueueTestSinkData:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueTestSinkData" );
-                        SCRObserverMsg testSinkDataNotify;
-                        testSinkDataNotify.iMsg = ECRTestSinkData;
-                        testSinkDataNotify.iErr = iReceivedMessage.iErr;
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( testSinkDataNotify ) );
-                            }
-                        }
-                        break;
-
-                    case ECRMsgQueueSdpAvailable:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueSdpAvailable" );
-                        SCRObserverMsg sdpAvailableNotify;
-                        sdpAvailableNotify.iMsg = ECRSdpAvailable;
-                        sdpAvailableNotify.iErr = iReceivedMessage.iErr;
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( sdpAvailableNotify ) );
-                            }
-                        }
-                        break;
-                        
-                    case ECRMsgQueueReadyToSeek:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueReadyToSeek" );
-                        SCRObserverMsg readyToSeekNotify;
-                        readyToSeekNotify.iMsg = ECRReadyToSeek;
-                        readyToSeekNotify.iErr = iReceivedMessage.iErr;
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( readyToSeekNotify ) );
-                            }
-                        }
-                        break;
-                        
-                    case ECRMsgQueueRecordingStarted:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueRecordingStarted" );
-                        SCRObserverMsg realStreamNotify;
-                        realStreamNotify.iMsg = ECRRecordingStarted;
-                        realStreamNotify.iErr = iReceivedMessage.iErr;
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( realStreamNotify ) );
-                            }
-                        }
-                        break;
-
-                    case ECRMsgQueueRecordingPaused:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueRecordingState" );
-                        SCRObserverMsg realStreamNotify;
-                        realStreamNotify.iMsg = ECRRecordingPaused;
-                        realStreamNotify.iErr = iReceivedMessage.iErr;
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( realStreamNotify ) );
-                            }
-                        }
-                        break;
-
-                    case ECRMsgQueueRecordingEnded:
-                        {
-                        LOG( "CCRMsgQueueObserver ECRMsgQueueRecordingState" );
-                        SCRObserverMsg realStreamNotify;
-                        realStreamNotify.iMsg = ECRRecordingEnded;
-                        realStreamNotify.iErr = iReceivedMessage.iErr;
-                        for ( i = 0; i < iObservers.Count(); i ++ )
-                            {
-                            TRAP_IGNORE( iObservers[i]->NotifyL( realStreamNotify ) );
-                            }
-                        }
-                        break;
-
-                    default:
-                        {
-                        LOG1( "Unknown message: %d", iReceivedMessage.iMsg );
-                        }
-                        break;
-                    }
-                }
-            else // message belongs to different session
-                {
-                LOG2( "Ignoring message: msg.sessionId=%d, iSessionId=%d",
-                       iReceivedMessage.iSessionId, iSessionId );
-                }
-	    	}
-        }
-    
-    iQueue.NotifyDataAvailable( iStatus ); 
-    SetActive();    
-    LOG( "CCRMsgQueueObserver::RunL() out" );
-    }
-
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::RunError()
-// From CActive
-// -----------------------------------------------------------------------------
-//
-TInt CCRMsgQueueObserver::RunError( TInt aError )
-    {
-    LOG1( "CCRMsgQueueObserver::RunError(), aError: %d", aError );
-    return aError;
-    }
-
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::DoCancel()
-// From CActive
-// -----------------------------------------------------------------------------
-//
-void CCRMsgQueueObserver::DoCancel()
-    {
-    LOG( "CCRMsgQueueObserver::DoCancel()" );
-    iQueue.CancelDataAvailable();    
-    }
-
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::AddMsgQueueObserverL()
-// Addes object to observer array
-// -----------------------------------------------------------------------------
-//
-void CCRMsgQueueObserver::AddMsgQueueObserverL( MCREngineObserver* aObserver ) 
-    {
-    User::LeaveIfError( iObservers.Append( aObserver ) );
-    }
-
-// -----------------------------------------------------------------------------
-// CCRMsgQueueObserver::SetSessionId()
-// Sets session id to listen to
-// -----------------------------------------------------------------------------
-//
-void CCRMsgQueueObserver::SetSessionId( TInt aSessionId )
-    {
-    iSessionId = aSessionId;
-    }
-
-// End of File