--- a/stifui/uitestserverstarter/src/TestServerThreadStarter.cpp Mon May 03 12:32:02 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