telephonyutils/etel3rdpartyapi/Test/te_etelIsv/TE_EtelIsvbase.h
author Oscar Gonzalez <oscar.1.gonzalez@nokia.com>
Thu, 06 May 2010 15:10:38 +0100
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
permissions -rw-r--r--
opencode

// Copyright (c) 2003-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:
//

/**
 @file
*/


#ifndef _TE_ETELISVBASE_H_
#define _TE_ETELISVBASE_H_

#include <e32base.h>
#include <es_sock.h>
#include <f32file.h>
#include <sacls.h>
#include "e32test.h"
#include "c32comm.h"
#include <simtsy.h>
#include <etel3rdparty.h>
#include <testconfigfileparser.h>
#include <test/testexecuteserverbase.h>

/**
This class provides a dummy request so that 
the main thread in the Stress Test does not hang
waiting for the requests by the internal AOs in 
CTelephonyFunctions to be dealt with.
*/
class CMyAsyncOneShot : public CAsyncOneShot
	{
public:
	static CMyAsyncOneShot* NewL();
	~CMyAsyncOneShot();

	void StartOneShot();
	
protected:
	void DoCancel();
	void RunL();

private:
	CMyAsyncOneShot();
	void ConstructL();
	/**
	Timer to provide a dummy asynchronous call for this class.
	Not used to actually do anything else.
	*/
	RTimer iTimer;
	};

class CEtelIsvTestStep : public CTestStep
{
public:
	~CEtelIsvTestStep();
	CEtelIsvTestStep();
 	virtual TVerdict doTestStepPreambleL( void );
	virtual TVerdict doTestStepPostambleL( void );
	void PrintIndicatorValues(TInt aIndicator, TInt aIndicatorCaps);
	void PrintBatteryInfo(CTelephony::TBatteryInfoV1& aBatteryInfo);
	void PrintLockInfo(CTelephony::TIccLock aLock, TInt aLockStatus, TInt aLockSetting);
	void PrintNetworkRegStatus(TInt aNetworkRegStatus);
	void PrintNetworkInfo(TInt aNetworkMode, TInt aNetworkAccess, TInt aNetworkStatus, TInt aNetworkBandInfo);
	void SetTestNumber(TInt aTestNumber);
	void SignalSimTsyToReduceTimersL();

	CTelephony* iTelephony;
	RProperty iTestNumberProperty;
	CActiveScheduler* iScheduler;
	CMyAsyncOneShot* iMyAsyncOneShot;
	
	// Some of the tests support "Buffer Mode". Default setting is EFalse.
	// In "Buffer Mode" the buffer package (TPckgBuff) is passed in to API method
	// as a descriptor reference, otherwise the raw packge (TPckg) is used.
	// This is to verify if ETel3rdParty suppports buffer packages (DEF091177). 
	TBool iBufferMode;

private:
};

class CTestCanceller : public CAsyncOneShot
	{
public:
	CTestCanceller(CActive*);
	~CTestCanceller();
private:
	void RunL();
private:
	CActive* iRetrieve;// not owned by this
	};

class CEtelIsvActBase : public CActive
	{
public:
	CEtelIsvActBase(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony);
	inline CTestCanceller* RetrieveCanceller() {return iCanceller;};
	virtual	void CallMe(TInt& aCallCount);	
protected:
	CTestCanceller* iCanceller;
	CTelephony* iTelephony;
	CEtelIsvTestStep* iTestStep;
	TRequestStatus iExpStat;
	};
 
class MActionParent
	{
public:

enum TActionEvent
	{
	EDialNewCall,
	EHangup,
	EAnswerIncomingCall
	};
	
	virtual void ActionParent(const TRequestStatus aCallStatus, const TActionEvent aEvent) = 0;
	};

#endif // _TE_ETELISVBASE_H_