browserui/browser/Launcher2/src/LauncherClientService.cpp
branchRCL_3
changeset 48 8e6fa1719340
parent 0 84ad3b177aa3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/browserui/browser/Launcher2/src/LauncherClientService.cpp	Wed Sep 01 12:31:04 2010 +0100
@@ -0,0 +1,205 @@
+/*
+* Copyright (c) 2002 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: 
+*      Implementation of CLauncherClientService
+*
+*
+*/
+
+
+// INCLUDES
+#include "LauncherClientService.h"
+#include "LauncherReceiveHandler.h"
+#include "logger.h"
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::ServiceUid()
+// -----------------------------------------------------------------------------
+//
+TUid RLauncherClientService::ServiceUid() const
+    {
+    return TUid::Uid( 0x01010101 );
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::InitializeL()
+// -----------------------------------------------------------------------------
+//
+void RLauncherClientService::InitializeL
+    ( TUid aServerAppUid, MLaunchedServerObserver& aServerObserver )
+    {
+    LOG_ENTERFN( "RLauncherClientService::InitializeL" );
+    
+    iActiveHandler = CLauncherReceiveHandler::NewL( &aServerObserver, *this );
+    CActiveScheduler::Add( iActiveHandler );
+
+    ConnectChainedAppL( aServerAppUid );
+    iServerExitMonitor = CApaServerAppExitMonitor::NewL( *this, 
+                                                         aServerObserver, 
+                                                         CActive::EPriorityStandard );
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::ListenL()
+// -----------------------------------------------------------------------------
+//
+void RLauncherClientService::ListenL()
+    {
+    LOG_ENTERFN( "RLauncherClientService::ListenL" );
+    
+    if ( iActiveHandler )
+        {
+        __ASSERT_DEBUG(!iActiveHandler->IsActive(), User::Panic(_L("Already Listening..."),1));
+        iActiveHandler->StartListen();
+        }
+    else
+        {
+        User::Leave( KErrNotFound );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::StopListening()
+// -----------------------------------------------------------------------------
+//
+void RLauncherClientService::StopListening()
+    {
+    LOG_ENTERFN( "RLauncherClientService::StopListening" );
+    
+    // tell receive handler to cancel receive and stop listening
+    iActiveHandler->Cancel();    
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::SendData()
+// -----------------------------------------------------------------------------
+//
+TInt RLauncherClientService::SendSync(  TDesC8& aBufferToSend )
+    {
+    LOG_ENTERFN( "RLauncherClientService::SendSync" );
+    return SendReceive( ELauncherSendSync, TIpcArgs( &aBufferToSend ) );
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::SendAsync()
+// -----------------------------------------------------------------------------
+//
+void RLauncherClientService::SendAsync( TDesC8& aBufferToSend, TDes8& aBufferSize )
+    {
+    LOG_ENTERFN( "RLauncherClientService::SendAsync" );
+    // If no previous request was done, which has not finished,
+    // then request is ok, send it...
+    SendReceive( ELauncherSendASync, TIpcArgs( &aBufferToSend, &aBufferSize ), 
+                          iActiveHandler->iStatus );
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::SendAsync()
+// -----------------------------------------------------------------------------
+//
+void RLauncherClientService::SendAsync()
+    {
+    LOG_ENTERFN( "RLauncherClientService::SendAsyncListen" );
+    // If no previous request was done, which has not finished,
+    // then request is ok, send it...
+    SendReceive( ELauncherSendASyncListen, iActiveHandler->iStatus );
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::SendAsync()
+// -----------------------------------------------------------------------------
+//
+void RLauncherClientService::SendAsync(TDes8& aBufferSize )
+    {
+    LOG_ENTERFN( "RLauncherClientService::SendAsyncListen" );
+    // If no previous request was done, which has not finished,
+    // then request is ok, send it...
+    
+    
+    TPckg<TInt> dummyParam(0);
+    
+    SendReceive( ELauncherSendASyncListen, TIpcArgs( &dummyParam, &aBufferSize ),iActiveHandler->iStatus );
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::SendSyncBuffer()
+// -----------------------------------------------------------------------------
+//
+TInt RLauncherClientService::SendSyncBuffer( TDes8& aReceiveBuffer )
+    {
+    LOG_ENTERFN( "RLauncherClientService::SendSyncBuffer" );
+    // Else reset the state of the request, and send the buffer with
+    // the size, set by the SendAsync() function 
+    // So the server can write into it.
+    return SendReceive( ELauncherSendSyncBuffer, TIpcArgs( &aReceiveBuffer ) );
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::SendSyncBools()
+// -----------------------------------------------------------------------------
+//
+TInt RLauncherClientService::SendSyncBools
+    ( TBool aClientWantsToContinue, TBool aWasContentHandled )
+    {
+    LOG_ENTERFN( "RLauncherClientService::SendSyncBools" );
+    // Else reset the state of the request, and send the buffer with
+    // the size, set by the SendAsync() function 
+    // So the server can write into it.
+    return SendReceive( ELauncherSendSyncBools, 
+                                     TIpcArgs( aClientWantsToContinue, aWasContentHandled ) );
+    }
+	
+// -----------------------------------------------------------------------------
+// RLauncherClientService::SendCommand()
+// -----------------------------------------------------------------------------
+//
+TInt RLauncherClientService::SendCommand( TInt aCommand )
+    {
+    LOG_ENTERFN( "RLauncherClientService::SendCommand" );
+    LOG_WRITE_FORMAT(" aCommand: %d", aCommand);
+    return SendReceive( aCommand, TIpcArgs() );
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::CancelReceive()
+// -----------------------------------------------------------------------------
+//
+void RLauncherClientService::CancelReceive()
+    {
+    LOG_ENTERFN( "RLauncherClientService::CancelReceive" );
+    SendReceive( ELauncherCancelReceive, TIpcArgs( 0 ) );
+    }
+
+// -----------------------------------------------------------------------------
+// RLauncherClientService::Close()
+// -----------------------------------------------------------------------------
+//
+void RLauncherClientService::Close()
+    {
+    LOG_ENTERFN( "RLauncherClientService::Close" );
+    
+    delete iActiveHandler;
+    iActiveHandler = 0;
+    LOG_WRITE(" iActiveHandler OK");
+
+    delete iServerExitMonitor;
+    iServerExitMonitor = 0;
+    LOG_WRITE(" iServerExitMonitor OK");
+
+    REikAppServiceBase::Close();
+    LOG_WRITE(" ServiceBase::Close OK");
+    }
+    
+// End of File