diff -r 3406c99bc375 -r 07b41fa8d1dd stif/TestServer/src/TestThreadContainerRunnerFactory.cpp --- a/stif/TestServer/src/TestThreadContainerRunnerFactory.cpp Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,368 +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 -* CTestthreadContainerRunnerFactory class member functions. -* -*/ - -// INCLUDE FILES -#include -#include "TestThreadContainerRunner.h" - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS -// None - -// MACROS -// None - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - Method: NewL - - Description: NewL is first phase of two-phased constructor. - - NewL is first phase of two-phased constructor. - - Parameters: TThreadId aThreadId: in: main thread id. - CActiveScheduler* aScheduler: in: Pointer to main thread active scheduler. - CUiEnvProxy* aUiEnvProxy: in: Pointer to UIEnvProxy. - - Return Values: Pointer to new CTestServerThreadStarter object. - - Errors/Exceptions: Leaves if new or ConstructL leaves. - - Status: Draft - -------------------------------------------------------------------------------- -*/ -EXPORT_C CTestThreadContainerRunnerFactory* -CTestThreadContainerRunnerFactory::NewL( TThreadId aThreadId, CActiveScheduler* aScheduler, CUiEnvProxy* aUiEnvProxy ) - { - CTestThreadContainerRunnerFactory* self = - new(ELeave)CTestThreadContainerRunnerFactory(); - CleanupStack::PushL( self ); - self->ConstructL( aThreadId, aScheduler, aUiEnvProxy ); - CleanupStack::Pop( self ); - return self; - } - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - Method: CTestThreadContainerRunnerFactory - - Description: Default constructor. - - Default constructor. - - Parameters: None. - - Return Values: None. - - Errors/Exceptions: None. - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CTestThreadContainerRunnerFactory::CTestThreadContainerRunnerFactory() -:CActive( EPriorityNormal ), -iTestThreadContainerRunner( NULL ), -iOperation( ENone ) - { - } - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - Method: ~CTestThreadContainerRunnerFactory - - Description: Default destructor. - - Default destructor. - - Parameters: None. - - Return Values: None. - - Errors/Exceptions: None. - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CTestThreadContainerRunnerFactory::~CTestThreadContainerRunnerFactory() - { - Cancel(); - iOperationEndSemaphore.Close(); - } - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - Method: ConstructL - - Description: Second phase of two-phased constructor. - - Second phase of two-phased constructor. - - Parameters: TThreadId aThreadId: in: main thread id. - CActiveScheduler* aScheduler: in: Pointer to main thread active scheduler. - CUiEnvProxy* aUiEnvProxy: in: Pointer to UIEnvProxy. - - Return Values: None. - - Errors/Exceptions: None. - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CTestThreadContainerRunnerFactory::ConstructL( TThreadId aThreadId, CActiveScheduler* aScheduler, CUiEnvProxy* aUiEnvProxy ) - { - User::LeaveIfNull( aScheduler ); - iThreadId = aThreadId; - iScheduler = aScheduler; - iUiEnvProxy = aUiEnvProxy; - - TInt ret = iOperationEndSemaphore.CreateLocal( 0 ); - if ( ret != KErrNone ) - { - User::Leave( ret ); - } - - iScheduler->Add( this ); - } - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - Method: DeleteL - - Description: Performs creation of CTestThreadContainerRunner object. - - Performs creation of CTestThreadContainerRunner object. - - Parameters: CTestThreadContainerRunner* aTestThreadContainerRunner: in: Pointer to - CTestThreadContainerRunner object which needs to be deleted. - - Return Values: None. - - Errors/Exceptions: Leaves if one of the called method leavs. - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CTestThreadContainerRunner* CTestThreadContainerRunnerFactory::CreateL() - { - if ( IsActive() ) - { - User::Panic( _L( "E32USER-CBase" ), 42 ); - } - - iOperation = ECreate; - iStatus = KRequestPending; - - RThread thread; - TInt ret = thread.Open( iThreadId ); - if ( ret != KErrNone ) - { - User::Leave( ret ); - } - - SetActive(); - TRequestStatus* statusPtr = &iStatus; - thread.RequestComplete( statusPtr, KErrNone ); - thread.Close(); - iOperationEndSemaphore.Wait(); - - return iTestThreadContainerRunner; - } - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - Method: DeleteL - - Description: Performs deletion of CTestThreadContainerRunner object. - - Performs deletion of CTestThreadContainerRunner object. - - Parameters: CTestThreadContainerRunner* aTestThreadContainerRunner: in: Pointer to - CTestThreadContainerRunner object which needs to be deleted. - - Return Values: None. - - Errors/Exceptions: Leaves if one of the called method leavs. - - Status: Draft - -------------------------------------------------------------------------------- -*/ -void CTestThreadContainerRunnerFactory::DeleteL( CTestThreadContainerRunner* aTestThreadContainerRunner ) - { - if ( IsActive() ) - { - User::Panic( _L( "E32USER-CBase" ), 42 ); - } - - iOperation = EDelete; - iStatus = KRequestPending; - - RThread thread; - TInt ret = thread.Open( iThreadId ); - if ( ret != KErrNone ) - { - User::Leave( ret ); - } - - iTestThreadContainerRunner = aTestThreadContainerRunner; - SetActive(); - TRequestStatus* statusPtr = &iStatus; - thread.RequestComplete( statusPtr, KErrNone ); - thread.Close(); - iOperationEndSemaphore.Wait(); - } - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - 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 CTestThreadContainerRunnerFactory::RunL() - { - switch( iOperation ) - { - case ECreate: - { - iTestThreadContainerRunner = CTestThreadContainerRunner::NewL( iThreadId, iScheduler ); - } - break; - case EDelete: - { - delete iTestThreadContainerRunner; - iTestThreadContainerRunner = NULL; - } - break; - default: - { - User::Panic( _L("STIFInternalError"), KErrNotFound ); - } - break; - } - iOperation = ENone; - iOperationEndSemaphore.Signal(); - } - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - 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 CTestThreadContainerRunnerFactory::DoCancel() - { - } - -/* -------------------------------------------------------------------------------- - - Class: CTestThreadContainerRunnerFactory - - Method: GetUiEnvProxy - - Description: Gets UIEnvProxy. - - Parameters: None. - - Return Values: Pointer to UIEnvProxy. - - Errors/Exceptions: None. - - Status: Draft - -------------------------------------------------------------------------------- -*/ -CUiEnvProxy* CTestThreadContainerRunnerFactory::GetUiEnvProxy() - { - return iUiEnvProxy; - } - -// End of File