diff -r b31261fd4e04 -r ccd8e69b5392 mmsharing/mmshmanagersrv/src/musmanagerserversession.cpp --- a/mmsharing/mmshmanagersrv/src/musmanagerserversession.cpp Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +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: ?Description -* -*/ - - -#include - -#include "muslogger.h" -#include "musmanageripccommon.h" -#include "musmanagerserveritcutility.h" -#include "musmanagerserversession.h" -#include "musmanagerserversessionobserver.h" -#include "musmanagerserver.h" - - -const TInt KServerRequestPending = 1; - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Second phase constructor. -// --------------------------------------------------------------------------- -// -CMusManagerServerSession::CMusManagerServerSession( - CMusManagerServer& aServer, - MMusManagerServerSessionObserver& aObserver ) - : CSession2(), iServer( aServer ), iServerCore( aObserver ) - { - iServer.IncrementSessions(); - } - -// --------------------------------------------------------------------------- -// Second phase constructor. -// --------------------------------------------------------------------------- -// -void CMusManagerServerSession::ConstructL() - { - - } - - -// --------------------------------------------------------------------------- -// First phase constructor. -// --------------------------------------------------------------------------- -// -CMusManagerServerSession* CMusManagerServerSession::NewL( - CMusManagerServer& aServer, - MMusManagerServerSessionObserver& aObserver ) - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerSession::NewL()" ); - CMusManagerServerSession* self = CMusManagerServerSession::NewLC( - aServer, - aObserver ); - CleanupStack::Pop( self ); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerSession::NewL()" ); - return self; - } - - -// --------------------------------------------------------------------------- -// First phase constructor. -// --------------------------------------------------------------------------- -// -CMusManagerServerSession* CMusManagerServerSession::NewLC( - CMusManagerServer& aServer, - MMusManagerServerSessionObserver& aObserver ) - { - CMusManagerServerSession* self = new( ELeave ) CMusManagerServerSession( - aServer, - aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - - -// --------------------------------------------------------------------------- -// Standard destructor. -// --------------------------------------------------------------------------- -// -CMusManagerServerSession::~CMusManagerServerSession() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerSession::~CMusManagerServerSession()" ); - iServer.DecrementSessions(); - iServerCore.CancelMonitoring( this ); - iAvailabilityStatus.Close(); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerSession::~CMusManagerServerSession()" ); - } - -// ----------------------------------------------------------------------------- -// Start to monitor availability states for this session. -// ----------------------------------------------------------------------------- -// -TInt CMusManagerServerSession::MonitorAvailabilityL() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerSession::MonitorAvailabilityL" ); - if ( iAvailabilityStatus.Count() ) - { - MusManagerServerItcUtility::WriteAvailabilityReportL( - iMessage, iAvailabilityStatus[0] ); - iAvailabilityStatus.Remove( 0 ); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerSession::\ - MonitorAvailabilityL" ); - return KErrNone; - } - else - { - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerSession::\ - MonitorAvailabilityL" ); - return KServerRequestPending; - } - } - -// --------------------------------------------------------------------------- -// Receives incoming messages. -// --------------------------------------------------------------------------- -// -void CMusManagerServerSession::ServiceL( const RMessage2& aMessage ) - { - MUS_LOG1( "mus: [MUSSRV] -> CMusManagerServerSession::ServiceL( %d )", - ( TInt ) aMessage.Function() ); - TMusManagerIpcFunctions function - = ( TMusManagerIpcFunctions )aMessage.Function(); - - TInt retVal( KErrNone ); - - switch ( function ) - { - case EMusManagerIpcAvailabilityQuery: - { - TInt capability = iServerCore.AvailabilityQueryL(); - MusManagerServerItcUtility::WriteAvailabilityL( - aMessage, - capability ); - - iLastReport = ( MultimediaSharing::TMusAvailabilityStatus )capability; - break; - } - case EMusManagerIpcInvestigateAvailability: - { - TRAP( retVal, iServerCore.InvestigateAvailabilityL() ); - break; - } - case EMusManagerIpcInvitationReceived: - { - TUid channelId - = MusManagerServerItcUtility::ReadChannelIdL( aMessage ); - - TRAP( retVal, iServerCore.InvitationReceivedL( channelId ) ); - - break; - } - case EMusManagerIpcOptionsReceived: - { - TUid channelId - = MusManagerServerItcUtility::ReadChannelIdL( aMessage ); - - TRAP( retVal, iServerCore.OptionsReceivedL( channelId ) ); - break; - } - case EMusManagerIpcStartMultimediaSharing: - { - TInt useCase - = MusManagerServerItcUtility::ReadUseCaseL( aMessage ); - - TRAP( retVal, iServerCore.StartMultimediaSharingL( - (MultimediaSharing::TMusUseCase) useCase ) ); - break; - } - case EMusManagerIpcStopMultimediaSharing: - { - TRAP( retVal, iServerCore.StopMultimediaSharingL() ); - break; - } - case EMusManagerIpcStartObservingAvailability: - { - iServerCore.RegisterObserverL( this ); - break; - } - - case EMusManagerIpcMonitorAvailability: - { - iMessage = aMessage; - retVal = MonitorAvailabilityL(); - } - break; - case EMusManagerIpcCancelMonitoring: - { - iServerCore.CancelMonitoring( this ); - } - break; - case EMusManagerIpcHandleCommand: - { - TInt command - = MusManagerServerItcUtility::ReadCommandL( aMessage ); - - TRAP( retVal, iServerCore.CommandL( - ( MultimediaSharing::TCommandType ) command ) ); - } - break; - - default: - break; - } - - MUS_LOG1( "mus: [MUSSRV] - Message compleated with code %d", retVal ); - aMessage.Complete( retVal ); - - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerSession::ServiceL()" ); - } - -void CMusManagerServerSession::AvailabilityChangedL( - MultimediaSharing::TMusAvailabilityStatus aAvailability ) - { - MUS_LOG1( "mus: [MUSSRV] -> CMusManagerServerCore::AvailabilityChangedL( %d )", - aAvailability ); - // inform ui via application manager (via session api) - if( iAvailabilityStatus.Count() && !iMessage.IsNull() ) - { - iAvailabilityStatus.AppendL( aAvailability ); - MusManagerServerItcUtility::WriteAvailabilityReportL( - iMessage, iAvailabilityStatus[0] ); - iAvailabilityStatus.Remove( 0 ); - iMessage.Complete( KErrNone ); - } - else if ( iMessage.IsNull() ) - { - iAvailabilityStatus.AppendL( aAvailability ); - } - else - { - MusManagerServerItcUtility::WriteAvailabilityReportL( - iMessage, aAvailability ); - iMessage.Complete( KErrNone ); - } - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerSession::AvailabilityChangedL()" ); - } - -void CMusManagerServerSession::RequestComplete() - { - MUS_LOG( "mus: [MUSSRV] -> CMusManagerServerSession::RequestComplete()" ); - iMessage.Complete( KErrCancel ); - MUS_LOG( "mus: [MUSSRV] <- CMusManagerServerSession::RequestComplete()" ); - } -