stifui/uitestserverstarter/src/TestServerThreadStarter.cpp
branchRCL_3
changeset 9 404ad6c9bc20
parent 8 87e9ebfbe96a
child 11 454d022d514b
--- a/stifui/uitestserverstarter/src/TestServerThreadStarter.cpp	Wed Apr 14 15:58:04 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,393 +0,0 @@
-/*
-* Copyright (c) 2009 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: This module contains the implementation of 
-* CTestServerThreadStarter class member functions.
-*
-*/
-
-// INCLUDE FILES
-#include "TestServerThreadStarter.h"
-#include <stifinternal/TestServerClient.h>
-
-// EXTERNAL DATA STRUCTURES
-// None
-
-// EXTERNAL FUNCTION PROTOTYPES  
-// None
-
-// CONSTANTS
-// None
-
-// MACROS
-// None
-
-/**
- * CTestServerThreadStarter thread heap size.
- */
-const TUint KDefaultHeapSize = 0x10000;     // 64 K
-
-/**
- * CTestServerThreadStarter thread max heap size.
- */
-const TUint KMaxHeapSize     = 0x20000;     // 128 K 
-
-// LOCAL CONSTANTS AND MACROS
-// None
-
-// MODULE DATA STRUCTURES
-// None
-
-// LOCAL FUNCTION PROTOTYPES
-// None
-
-// FORWARD DECLARATIONS
-// None
-
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CTestServerThreadStarter
-
-     Method: TestServerStarterThreadFunction
-
-     Description: CTestServerThreadStarter thread function.
-
-	 CTestServerThreadStarter thread function in which testserver creation code
-	 is executed.
-
-     Parameters: TAny* aParameters: in: Pointer to CTestServerThreadStarter object
-     
-     Return Values: None.
-
-     Errors/Exceptions: None.
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-TInt CTestServerThreadStarter::TestServerStarterThreadFunction( TAny* aParameters )
-	{
-	RDebug::Printf( "UITESTING: CTestServerThreadStarter::TestServerStarterThreadFunction" );
-    
-    CTestServerThreadStarter* testServerStarter = (CTestServerThreadStarter*)aParameters;
-    TThreadId mainThreadId = testServerStarter->iMainThreadId;
-    CTestThreadContainerRunnerFactory* testThreadContainerRunnerFactory = 
-    	testServerStarter->iTestThreadContainerRunnerFactory;
-    
-   	// Signal that all needed data is copied and main thread can continue its execution 
-    testServerStarter->iServerThreadStartedSemaphore.Signal();
-    	
-    // Get module name from command line
-	const TInt length = User().CommandLineLength();
-
-    HBufC* cmdLine = HBufC::New( length );
-    
-    if ( cmdLine == NULL )
-        {
-        return KErrNoMemory;
-        }
-
-    TPtr moduleName = cmdLine->Des();
-
-	User().CommandLine( moduleName );
-
-    RDebug::Print(_L("CTestServerThreadStarter::TestServerStarterThreadFunction() Received data [%S]"), &moduleName);
-
-    // Extract semaphore name passed in data
-    TInt index = moduleName.Find(_L(" "));
-    RDebug::Print(_L("CTestServerThreadStarter::TestServerStarterThreadFunction() Space separator found at position [%d]"), index);
-    TPtrC semaphoreName = moduleName.Mid(index + 1);
-    moduleName = moduleName.Left(index);
-
-    RDebug::Print(_L("CTestServerThreadStarter::TestServerStarterThreadFunction() Extracted module name [%S] and sempahore name [%S]"), &moduleName, &semaphoreName);
-
-    // Open start-up synchronization semaphore
-    RSemaphore startup;
-    RDebug::Print(_L(" Openingstart-up semaphore"));
-    //TName semaphoreName = _L("startupSemaphore");
-    //semaphoreName.Append( moduleName );
-    
-    TInt res = startup.OpenGlobal(semaphoreName);
-    RDebug::Print(_L("Opening result %d"), res);    
-
-
-    TFileName serverName;
-    TInt r = StartNewServer ( moduleName, serverName, EFalse, startup, true, testThreadContainerRunnerFactory );
-
-    if ( r ==   KErrAlreadyExists )
-        {        
-        // Ok, server was already started
-        RDebug::Print(_L("UI TestServer already started, signaling semaphore and exiting"));
-        startup.Signal();        
-
-        delete cmdLine;
-
-        return KErrNone;
-        }
-    else
-        {       
-        RDebug::Print(_L("UI TestServer is finished, code %d"), r);
-        }
-
-    delete cmdLine;
-    
-    //delete testThreadContainerRunnerFactory;
-    testThreadContainerRunnerFactory = NULL;
-    
-    // Kill main thread to end UITestServerStarter application
-    // when testserver is finished    
-    RThread mainThread;
-    TInt ret = mainThread.Open( mainThreadId );
-	if( ret != KErrNone )
-		{
-		User::Panic( _L("ThreadHandleOpenError"), ret );
-		}
-    mainThread.Kill( KErrNone );
-    
-    return r;	
-	}
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CTestServerThreadStarter
-
-     Method: NewL
-
-     Description: NewL is first phase of two-phased constructor.
-
-	 NewL is first phase of two-phased constructor.
-
-     Parameters: None.
-     
-     Return Values: Pointer to new CTestServerThreadStarter object.
-
-     Errors/Exceptions: Leaves if new or ConstructL leaves.
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-CTestServerThreadStarter* CTestServerThreadStarter::NewL( )
-	{
-	CTestServerThreadStarter* self = new(ELeave) CTestServerThreadStarter();
-	CleanupStack::PushL( self );
-	self->ConstructL();
-	CleanupStack::Pop( self );
-	return self;
-	}
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CTestServerThreadStarter
-
-     Method: CTestServerThreadStarter
-
-     Description: Default constructor.
-
-	 Default constructor.
-
-     Parameters: None.
-     
-     Return Values: None.
-
-     Errors/Exceptions: None.
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-CTestServerThreadStarter::CTestServerThreadStarter()
-:CActive( EPriorityNormal )
-	{
-	}
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CTestServerThreadStarter
-
-     Method: NewL
-
-     Description: Default destructor.
-
-	 Default destructor.
-
-     Parameters: None.
-     
-     Return Values: None.
-
-     Errors/Exceptions: None.
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-CTestServerThreadStarter::~CTestServerThreadStarter()
-	{
-	Cancel();
-	iTimer.Close();
-	}
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CTestServerThreadStarter
-
-     Method: ConstructL
-
-     Description: Second phase of two-phased constructor.
-
-	 Second phase of two-phased constructor.
-
-     Parameters: None.
-     
-     Return Values: None.
-
-     Errors/Exceptions: None.
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-void CTestServerThreadStarter::ConstructL()
-	{
-	TInt ret = iTimer.CreateLocal();
-	if ( ret != KErrNone )
-		{
-		User::Leave( ret );
-		}
-
-	CActiveScheduler::Add( this );
-	}
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CTestServerThreadStarter
-
-     Method: RunTestServerThread
-
-     Description: Starts-up testserver.
-
-	 Starts-up testserver.
-
-     Parameters: None.
-     
-     Return Values: KErrNone when there was no error.
-
-     Errors/Exceptions: None.
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-TInt CTestServerThreadStarter::RunTestServerThread( CTestThreadContainerRunnerFactory* aTestThreadContainerRunnerFactory )
-	{
-	if ( IsActive() )
-		{
-		User::Panic( _L("E32USER-CBase"), 42 );
-		}
-		
-	TInt ret = iServerThreadStartedSemaphore.CreateLocal( 0 );
-	if ( ret != KErrNone )
-		{
-		User::Leave( ret );
-		}
-	
-	iTestThreadContainerRunnerFactory = aTestThreadContainerRunnerFactory;
-	iMainThreadId = RThread().Id();
-	iReturnCode = KErrNone;
-	
-	iStatus = KRequestPending;
-
-	SetActive();
-	iTimer.After( iStatus, 0 );
-	
-	return KErrNone;
-	}
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CTestServerThreadStarter
-
-     Method: RunL
-
-     Description: RunL derived from CActive handles the completed requests.
-
-	 RunL derived from CActive handles the completed requests.
-
-     Parameters: None.
-     
-     Return Values: None.
-
-     Errors/Exceptions: Leaves if one of the called method leavs.
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-void CTestServerThreadStarter::RunL()
-	{
-	RThread testServerStarterThread;	
-	TInt ret = testServerStarterThread.Create( _L("testserverstarterthread"), 
-			TestServerStarterThreadFunction, 10 * KDefaultStackSize, 10 * KDefaultHeapSize, 10 * KMaxHeapSize, this );
-	
-	User::LeaveIfError( ret );
-		
-	testServerStarterThread.Resume();	
-	testServerStarterThread.Close();
-	
-	iServerThreadStartedSemaphore.Wait();
-	iServerThreadStartedSemaphore.Close();
-	
-	// Delete CTestServerThreadStarter after testserver is started
-	delete this;
-	}
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CTestServerThreadStarter
-
-     Method: DoCancel
-
-     Description: DoCancel derived from CActive handles the Cancel.
-
-	 DoCancel derived from CActive handles the Cancel.
-
-     Parameters: None.
-     
-     Return Values: None.
-
-     Errors/Exceptions: None.
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-void CTestServerThreadStarter::DoCancel()
-	{
-	if ( IsActive() )
-		{
-		iTimer.Cancel();
-		}
-	}
-
-// End of File