mmsharing/mmshmanagercli/src/musmanagerclientsession.cpp
changeset 0 f0cf47e981f9
child 31 33a5d2bbf6fc
--- /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()" );
+    }