diff -r 000000000000 -r f0cf47e981f9 mmsharing/mmshmanagercli/src/musmanagerclientsession.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshmanagercli/src/musmanagerclientsession.cpp Thu Dec 17 08:44:37 2009 +0200 @@ -0,0 +1,239 @@ +/* +* 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 "musmanagerclientsession.h" +#include "musmanageripccommon.h" +#include "musmanagercommon.h" +#include "muslogger.h" +#include "musmanager.h" + +/* Number of outstanding request can be issued by the client + For Mush 8 is normal and if needed it has to be increased + Or decreased . If request exceeds this number then that particular + Request will be considered as part of the global pool of request +*/ +#define ASYNCHRONOUS_MESSAGE_SLOTS 255 + +// ======== LOCAL FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +RMusManagerClientSession::RMusManagerClientSession() + : RSessionBase () + { + + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::ConnectL() + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::ConnectL()" ); + TRequestStatus s; + User::LeaveIfError( CreateSession( KMusManagerServerName(), Version(), + ASYNCHRONOUS_MESSAGE_SLOTS, &s ) ); + + User::WaitForRequest( s ); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::ConnectL()" ); + } + + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::Disconnect() + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::Disconnect()" ); + RHandleBase::Close(); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::Disconnect()" ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TVersion RMusManagerClientSession::Version(void) const + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::Version()" ); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::Version()" ); + return TVersion( KMusManagerServerMajorVersionNumber, + KMusManagerServerMinorVersionNumber, + KMusManagerServerBuildVersionNumber); + } + + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::InvestigateAvailabilityL() + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::InvestigateAvailabilityL()" ); + // construct an empty argument + TIpcArgs ipcArgs( TIpcArgs::ENothing ); + + // send + User::LeaveIfError( SendReceive( EMusManagerIpcInvestigateAvailability, ipcArgs ) ); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::InvestigateAvailabilityL()" ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +MultimediaSharing::TMusAvailabilityStatus RMusManagerClientSession::QueryAvailabilityL() + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::QueryAvailabilityL()" ); + TInt capability; + TPckg capPckg( capability ); + + // construct a single argument + TIpcArgs ipcArgs( &capPckg ); + + // send and wait for answer + User::LeaveIfError( SendReceive( EMusManagerIpcAvailabilityQuery, ipcArgs ) ); + + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::QueryAvailabilityL()" ); + return ( MultimediaSharing::TMusAvailabilityStatus ) capability; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::StartL( MultimediaSharing::TMusUseCase aUseCase ) + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::StartL()" ); + TPckg pckg( ( TInt ) aUseCase ); + TIpcArgs ipcArgs( &pckg ); + // send + + User::LeaveIfError( SendReceive( EMusManagerIpcStartMultimediaSharing, ipcArgs ) ); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::StartL()" ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::StartObservingAvailabilityL() + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::\ + StartObservingAvailabilityL()" ); + // construct an empty argument + TIpcArgs ipcArgs( TIpcArgs::ENothing ); + + // send + User::LeaveIfError( SendReceive( EMusManagerIpcStartObservingAvailability, ipcArgs ) ); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::\ + StartObservingAvailabilityL()" ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::StopL() + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::StopL()" ); + // construct an empty argument + TIpcArgs ipcArgs( TIpcArgs::ENothing ); + + // send + User::LeaveIfError( SendReceive( EMusManagerIpcStopMultimediaSharing, ipcArgs ) ); + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::StopL()" ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::HandleCommandL( + MultimediaSharing::TCommandType aCommandType ) + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::HandleCommandL()" ); + // construct a single argument + TPckg pckg( ( TInt ) aCommandType ); + TIpcArgs ipcArgs( &pckg ); + // send + User::LeaveIfError( SendReceive( EMusManagerIpcHandleCommand, ipcArgs ) ); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::HandleCommandL()" ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::HandleSipRequestL( TInt aUid ) + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::HandleSipRequestL()" ); + // construct a single argument + TPckg pckg( aUid ); + TIpcArgs ipcArgs( &pckg ); + // Handle sip options in a different way + if (aUid == CMusManager::ESipOptions) + { + MUS_LOG( "mus: [MUSCLI] -> This is sip options request sending to server" ); + User::LeaveIfError( SendReceive( EMusManagerIpcOptionsReceived, ipcArgs ) ); + } + else + { + MUS_LOG( "mus: [MUSCLI] -> This is some invitation request sending to server" ); + User::LeaveIfError( SendReceive( EMusManagerIpcInvitationReceived, ipcArgs ) ); + } + + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::HandleSipRequestL()" ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::MonitorAvailabilityL( + TRequestStatus& aRequestStatus, + TIpcArgs& aIpcArgs ) + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::MonitorAvailabilityL()" ); + SendReceive( + EMusManagerIpcMonitorAvailability, + aIpcArgs, + aRequestStatus ); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::MonitorAvailabilityL()" ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void RMusManagerClientSession::CancelMonitoringL() + { + MUS_LOG( "mus: [MUSCLI] -> RMusManagerClientSession::CancelMonitoring()" ); + // construct an empty argument + TIpcArgs ipcArgs( TIpcArgs::ENothing ); + + // send + User::LeaveIfError( SendReceive( EMusManagerIpcCancelMonitoring, ipcArgs ) ); + MUS_LOG( "mus: [MUSCLI] <- RMusManagerClientSession::CancelMonitoring()" ); + }