/*
* 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 file contains the header file of the CUIEngine.
*
*/
#ifndef STIF_TFW_IF_CONTAINER_H
#define STIF_TFW_IF_CONTAINER_H
// INCLUDES
#include <e32std.h>
#include <e32base.h>
#include <StifTFwIf.h>
#include <TestEngineClient.h>
#include <stifinternal/UIEngine.h>
// CONSTANTS
// None
_LIT( KUIStoreDefaultDir, "C:\\TestFramework\\" );
// MACROS
// None
// DATA TYPES
// None
// FUNCTION PROTOTYPES
// None
// FORWARD DECLARATIONS
class CUIEngine;
class CUIEngineRunner;
class CUIEnginePrinter;
class CUIEngineErrorPrinter;
class CUIEngineRemote;
// CLASS DECLARATION
// DESCRIPTION
// CUIEngineContainer is interface between main class CUIEngine
// and CUIEngineRunner, which execute test cases
class CUIEngineContainer
: public CBase
{
public: // Enumerations
// Case state
enum TCaseState
{
ENotStarted,
ERunning,
EPaused,
EExecuted,
EFinished,
};
private: // Enumerations
// None
public: // Constructor
/**
* NewL is two-phased constructor.
*/
static CUIEngineContainer* NewL( CUIEngine* aUIEngine,
const TTestInfo& aTestInfo,
RTestEngineServer& aTestEngineServ,
RTestEngine& aTestEngine );
public: // New functions
public: // Functions from base classes
/**
* StartContainerL starts test case execution.
*
* Returns Symbian OS error code.
*/
TInt StartContainerL();
/**
* TestCaseExecuted informs that test case has executed.
*/
void TestCaseExecuted( TFullTestResult& aResult, TInt aStatus );
/**
* PrintProgress forwards print information from test case.
*/
void PrintProgress( TTestProgress& aProgress );
/**
* RemoteSend forwards remote protocol messages from master.
*/
void RemoteSend( const TDesC& aRemoteMsg, TInt aStatus );
/**
* GoingToReboot forwards reboot indication.
*/
TInt GoingToReboot( TRequestStatus& aStatus );
/**
* RemoteReceive forwards remote protocol messages to master.
*/
TInt RemoteReceive( const TDesC& aRemoteMsg );
/**
* CancelTest cancels test case execution. TestCompleted() will be called
* with aTestExecutionResult set to KErrCancel.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt CancelTest();
/**
* PauseTest pauses test case execution.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt PauseTest();
/**
* ResumeTest resumes test case execution.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt ResumeTest();
/**
* Return remote identifier.
*/
TUint32 RemoteId() const { return iRemoteId; };
/**
* Set remote identifier.
*/
void SetRemoteId( TUint32 aRemoteId ){ iRemoteId = aRemoteId; };
/**
* Return master identifier.
*/
TUint32 MasterId() const { return iMasterId; };
/**
* Return test case execution state.
*/
TCaseState State() const { return iState; };
/**
* Printer signals all prints done event.
*/
void PrintsDone();
protected: // New functions
// None
protected: // Functions from base classes
// None
private: // Constructors and destructor
/**
* C++ default constructor.
*/
CUIEngineContainer( CUIEngine* aUIEngine,
const TTestInfo& aTestInfo,
RTestEngineServer& aTestEngineServ,
RTestEngine& aTestEngine );
/**
* By default Symbian OS constructor is private.
*/
void ConstructL();
/**
* Destructor of CUIEngineContainer.
*/
~CUIEngineContainer();
public: //Data
// Pointer to UIEngine
CUIEngine* iUIEngine;
protected: // Data
// None
private: // Data
// Handle to Test Engine Server
RTestEngineServer iTestEngineServ;
// Handle to Test Engine
RTestEngine iTestEngine;
// Handle to Test Case
RTestCase iTestCase;
// Test case runner
CUIEngineRunner* iRunner;
// Test case printer
CUIEnginePrinter* iPrinter;
// Test case remote command handler
CUIEngineRemote* iRemote;
// Test info and package
TTestInfo iTestInfo;
TTestInfoPckg iTestInfoPckg;
// Case state
TCaseState iState;
// Remote protocol identifier
TUint32 iRemoteId;
// Master protocol identifier
TUint32 iMasterId;
public: // Friend classes
friend class CUIEngine;
protected: // Friend classes
private: // Friend classes
};
#endif // STIF_TFW_IF_CONTAINER_H
// End of File