--- /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 <e32base.h>
+
+#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<TInt> 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<TInt> 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<TInt> 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<TInt> 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()" );
+ }