diff -r 000000000000 -r 9cfd9a3ee49c lbstest/lbstestproduct/lbshybridmolr/inc/ctlbsnetprotocol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lbstest/lbstestproduct/lbshybridmolr/inc/ctlbsnetprotocol.h Tue Feb 02 01:50:39 2010 +0200 @@ -0,0 +1,108 @@ +// Copyright (c) 2008-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: +// + +#ifndef __CT_LBS_NET_PROTOCOL_H__ +#define __CT_LBS_NET_PROTOCOL_H__ + +// LBS includes. +#include +#include +#include +#include + +// LBS test includes. +#include +#include "ctlbstestactivemanager.h" + +class CT_LbsNetProtocol : public CActive + { +public: + enum TPlannedPositionOriginator + { + EPositionOriginatorUnkown, + EPositionOriginatorModule, + EPositionOriginatorNetwork + }; +public: + ~CT_LbsNetProtocol(); + + static CT_LbsNetProtocol* NewL(MTestFlowObserver& aObserver, CTestStep& aStep); + + void StartNetworkL(); + void SignalClientsFinished(); + + TPlannedPositionOriginator PlannedPositionOriginator(); + void SetPlannedPositionOriginator(TInt aOriginator); + void SetNetworkMethod(TInt aMethod); + +private: + CT_LbsNetProtocol(MTestFlowObserver& aObserver, CTestStep& aStep); + void ConstructL(); + +private: + void RunL(); + TInt RunError(TInt aError); + void DoCancel(); + void Process_RequestSelfLocationL(); + TLbsNetPosRequestMethod RequestNetworkMethod(); + void CheckQualityL(TLbsNetPosRequestOptionsAssistance* opts); + void DoClientStepL(TInt aIndex); + void DecideWhatNetworkDoesntReceive(); + +private: + enum TChosenNetworkMethod + { + ENetworkMethodNotSet, + ETerminalBasedNetworkMethod, + ETerminalBasedTerminalAssistedNetworkMethod, + ETerminalAssistedNetworkMethod, + ETerminalAssistedTerminalBasedNetworkMethod + }; + enum TNetworkProtocolProxyStep + { + ENetworkProtocolProxyStepInitial, // = 0 + ENetworkProtocolProxyStepSessionNrhRequestSent, // = 1 + ENetworkProtocolProxyStepSessionWaitingForFirstMeasurmentsTimeOut, // = 2 + ENetworkProtocolProxyStepSessionWaitingForFirstMeasurments, // = 3 + ENetworkProtocolProxyStepSessionMeasurmentsReceived, // = 4 + ENetworkProtocolProxyStepSessionPositionSent, // = 5 + ENetworkProtocolProxyStepNoSessionRunning // = 6 + }; + + MTestFlowObserver& iObserver; + CTestStep& iStep; + + TLbsNetSessionId iSessionId; + /** Used so the network requests the method specified in the ini file */ + TChosenNetworkMethod iNetworkMethod; + /** Remembers what is the next thing the network should expect/send */ + TNetworkProtocolProxyStep iNetworkProtocolProxyStep; + /** The session ID where the count starts from the beggining of the test*/ + TInt iRelativeSessionId; + /** The Network Protocol Proxy */ + CNetProtocolProxy* iProxy; + TBool iClientsFinished; + + /** Used so the network proxy knows if it should return the positions + or should let the module calculate it in hybrid case */ + TPlannedPositionOriginator iPlannedPositionOriginator; + /** Used so the network proxy knows what to expect*/ + TBool iNetworkExpectsMeasurments; + TBool iNetworkExpectsPositions; + + TTime iAlpha2StartTime; + }; + +#endif //__CT_LBS_NET_PROTOCOL_H__