lbs/common/inc/ctlbsnetsimstep.h
branchSymbian2
changeset 1 8758140453c0
child 6 c108117318cb
equal deleted inserted replaced
0:e8c1ea2c6496 1:8758140453c0
       
     1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of the License "Symbian Foundation License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // @file ctlbsNetsimstep.h
       
    15 // This contains the header file for LBS Net Sim Test Step Base
       
    16 // 
       
    17 //
       
    18 
       
    19 #ifndef __CT_LBS_NET_SIM_STEP_H__
       
    20 #define __CT_LBS_NET_SIM_STEP_H__
       
    21 
       
    22 // EPOC includes.
       
    23 #include <testexecutestepbase.h>
       
    24 
       
    25 // LBS test includes.
       
    26 #include <lbsnetsimtest.h>
       
    27 #include <lbsnetsimtestobserver.h>
       
    28 
       
    29 #include "ctlbstimerutils.h"
       
    30 
       
    31 
       
    32 const TInt KLbsKeepAlivePeriod = 10000;
       
    33 
       
    34 const TInt KKeepAliveTimerId = 0;
       
    35 const TInt KAbortTimerId = 34;
       
    36 
       
    37 /** Callback flags held as bits in a 32 bit word.
       
    38 */
       
    39 typedef TUint32 TLbsCallbackFlags;
       
    40 
       
    41 const TLbsCallbackFlags KLbsCallback_None															= 0x0000;
       
    42 
       
    43 const TLbsCallbackFlags KLbsCallback_NetSim_Got_Connect												= 0x0001;
       
    44 const TLbsCallbackFlags KLbsCallback_NetSim_Got_Disconnect											= 0x0002;
       
    45 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyRegisterLcsMoLr								= 0x0004;
       
    46 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyReleaseLcsMoLr								= 0x0008;
       
    47 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyMeasurementControlLocation					= 0x0010;
       
    48 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyReleaseLcsLocationNotification				= 0x0020;
       
    49 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyFacilityLcsMoLrResult							= 0x0040;
       
    50 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyMeasurementReportLocation						= 0x0080;
       
    51 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyMeasurementReportRequestMoreAssistanceData	= 0x0100;
       
    52 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyMeasurementReportControlFailure 				= 0x0200;
       
    53 const TLbsCallbackFlags KLbsCallback_NetSim_Got_NotifyError											= 0x0400;
       
    54 const TLbsCallbackFlags KLbsCallback_NetSim_Got_ProcessMeasurementControlLocationError				= 0x0800;
       
    55 
       
    56 // NOTE: Derived test case will assume that they create new flags starting at 0x1000. If you add additional
       
    57 // flags here, the derived test cases will have to be updated also.
       
    58 
       
    59 const TLbsCallbackFlags KLbsCallback_MoLr =
       
    60 	KLbsCallback_NetSim_Got_NotifyRegisterLcsMoLr 				| // --> NET
       
    61 	KLbsCallback_NetSim_Got_NotifyMeasurementControlLocation	| // <-- NET
       
    62 	KLbsCallback_NetSim_Got_NotifyMeasurementReportLocation 	| // --> NET
       
    63 	KLbsCallback_NetSim_Got_NotifyFacilityLcsMoLrResult			| // <-- NET
       
    64 	KLbsCallback_NetSim_Got_NotifyReleaseLcsMoLr;				  // --> NET
       
    65 	
       
    66 //const TLbsCallbackFlags KLbsCallback_NetworkBasedLocation =
       
    67 //	KLbsCallback_NetSim_Got_NotifyRegisterLcsMoLr 					| // --> NET
       
    68 //	KLbsCallback_NetSim_Got_NotifyMeasurementControlLocation		| // <-- NET
       
    69 //	KLbsCallback_NetSim_Got_NotifyMeasurementReportControlFailure 	| // --> NET
       
    70 
       
    71 //	KLbsCallback_NetSim_Got_NotifyReleaseLcsMoLr;				  	  // --> NET	
       
    72 
       
    73 const TLbsCallbackFlags KLbsCallback_NetworkBasedLocation =
       
    74 	KLbsCallback_NetSim_Got_NotifyRegisterLcsMoLr 					| // --> NET
       
    75 	KLbsCallback_NetSim_Got_NotifyMeasurementControlLocation		| // <-- NET
       
    76 	KLbsCallback_NetSim_Got_NotifyMeasurementReportLocation			| // --> NET
       
    77 	KLbsCallback_NetSim_Got_NotifyFacilityLcsMoLrResult				| // <-- NET
       
    78 	KLbsCallback_NetSim_Got_NotifyReleaseLcsMoLr;				  	  // --> NET	
       
    79 
       
    80 const TLbsCallbackFlags KLbsCallback_MtLr =
       
    81 		// note: we get no notification of the 
       
    82 		KLbsCallback_NetSim_Got_NotifyReleaseLcsLocationNotification |  // response to privacy request
       
    83 		KLbsCallback_NetSim_Got_NotifyMeasurementControlLocation |		// location request
       
    84 		KLbsCallback_NetSim_Got_NotifyMeasurementReportLocation;
       
    85 
       
    86 
       
    87 class CT_LbsNetSimStep : public CTestStep,
       
    88 						 public	MT_LbsTimerUtilsObserver,
       
    89 						 public MLbsNetSimTestObserver
       
    90 {
       
    91 
       
    92 public:
       
    93 
       
    94 	virtual ~CT_LbsNetSimStep();
       
    95 
       
    96 	virtual TVerdict doTestStepPreambleL();
       
    97 	virtual TVerdict doTestStepPostambleL();
       
    98 
       
    99 
       
   100 	// From MLbsNetSimTestObserver.	
       
   101 	virtual void Connected();
       
   102 	virtual void Disconnected();
       
   103 	virtual void NotifyRegisterLcsMoLr(const TDesC& aData);
       
   104 	virtual void NotifyReleaseLcsMoLr(TInt aReason);
       
   105 	virtual void NotifyMeasurementControlLocation(const TPositionInfo& aPosition, const RLbsAssistanceDataBuilderSet& aData, const TLbsNetPosRequestQuality& aQuality);
       
   106 	virtual void NotifyReleaseLcsLocationNotification(const CLbsNetworkProtocolBase::TLbsPrivacyResponse& aResult);
       
   107 	virtual void NotifyFacilityLcsMoLrResult(TInt aReason, const TPositionInfo& aPosition);
       
   108 	virtual void NotifyMeasurementReportLocation(const TPositionInfo& aPosition);
       
   109 	virtual void NotifyMeasurementReportRequestMoreAssistanceData(const TLbsAssistanceDataGroup& aFilter);
       
   110 	virtual void NotifyMeasurementReportControlFailure(TInt aReason);
       
   111 	virtual void NotifyError(MLbsNetSimTestObserver::EFunction aFunction, int aError);
       
   112 	virtual void ProcessMeasurementControlLocationError(TInt aError);
       
   113 
       
   114 protected:
       
   115 
       
   116 	CT_LbsNetSimStep();
       
   117 	
       
   118 	/** If aHaltTimerInterval is set, the test will continue for this period of time after all halt flags have been set
       
   119 	 */
       
   120 	void ConstructL(TTimeIntervalMicroSeconds32 aHaltTimerInterval = 0);
       
   121 	
       
   122 	/** Can be used to set the extended timer interval if not known at construct time
       
   123 	*/
       
   124 	void SetExtendedTimerInterval(TTimeIntervalMicroSeconds32 aHaltTimerInterval);
       
   125 
       
   126 	void SetCallbackFlag(TLbsCallbackFlags aCallbackFlag);
       
   127 	TBool TestCallbackFlags(TLbsCallbackFlags aExpectedFlags);
       
   128 
       
   129 
       
   130 	// From MT_LbsTimerUtilsObserver - keep alive timer to ensure we recvice all callbacks.
       
   131 	virtual void HandleTimerL(TInt aTimerId, const TTime& aTargetTime);
       
   132 
       
   133 	
       
   134 	enum  {		EConnecting = 0,	/** Waiting for the Net Sim to connect to the protocol module. */
       
   135 				EWaiting,			/** Waiting for all the callbacks to be fired. */
       
   136 				EExtendedWaiting,	/** Waiting for extended timer to fire */
       
   137 				EAborted,			/** Abort timer has fired before all callbacks fired */
       
   138 				EDone,				/** All the correct callbacks have been fired (and extended timer, if any, has fired), the test can end. */
       
   139 				ELast};				/** Used to allow extension of enums in derived classes - do not use! */
       
   140 
       
   141 	/** State machine variable for the test step.
       
   142 	*/
       
   143 	TInt iState;
       
   144 
       
   145 
       
   146 	/** Used to keep a record off all the callback events.
       
   147 	*/
       
   148 	TLbsCallbackFlags iCallbackFlags;
       
   149 	
       
   150 
       
   151 	/** Expected callback flags at test end.
       
   152 	*/
       
   153 	TLbsCallbackFlags iFlagsToHaltOn;
       
   154 	
       
   155 	/** If this is non-zero, the test will continue for this period of time after all halt flags have been set
       
   156 	*/
       
   157 	TTimeIntervalMicroSeconds32	iExtendedTimerInterval;
       
   158 	
       
   159 	/** Network Simulator, to allow MT-LRs and to monitor network messages.
       
   160 	*/
       
   161 	RLbsNetSimTest iNetSim;
       
   162 
       
   163 
       
   164 	/** Timer used to ensure the test step keeps processing until all the required callbacks
       
   165 		have been called. Otherwise we would execute the test step calls and return from the
       
   166 		doTestStepL function and miss the callbacks being fired.
       
   167 	*/
       
   168 	CT_LbsTimerUtils* iKeepAliveTimer;
       
   169 	
       
   170 	/** Timer used to abort the test step if all callbacks have not fired. Individual test cases can start this time with appropriate time.
       
   171 		
       
   172 	*/
       
   173 	CT_LbsTimerUtils* iAbortTimer;
       
   174 	
       
   175 };
       
   176 
       
   177 #endif // __CT_LBS_STEP_H__