| author | Billy Gibson <Billy.Gibson@nokia.com> |
| Fri, 09 Apr 2010 17:19:12 +0100 | |
| branch | GeoConversion |
| changeset 16 | 90477588756a |
| parent 0 | 9cfd9a3ee49c |
| permissions | -rw-r--r-- |
// Copyright (c) 2006-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 @internalComponent @test */ #ifndef LBSNETSIMGATEWAYHANDLER_H #define LBSNETSIMGATEWAYHANDLER_H #include "lbsnetsim.h" #include "lbsnetsimsessionhandler.h" #include "lbsnetsimassistancedataproviderobserver.h" #include <lbs/lbsassistancedatabuilderset.h> class CLbsNetSimTestHandler; class CLbsNetSimAssistanceDataProvider; class CLbsNetSimGatewayHandler : public CTimer, public MLbsNetSimSessionHandler, public MLbsNetSimAssistanceDataProviderObserver { public: // Construction static CLbsNetSimGatewayHandler* NewL(CLbsNetSimAssistanceDataProvider& aAssitanceDataProvider); void SetTestHandler(CLbsNetSimTestHandler* aTestHandler); ~CLbsNetSimGatewayHandler(); // MLbsNetSimSessionHandler void ServiceL(const RMessage2& aMessage); void Connected(); void Disconnected(); // MLbsNetSimAssistanceDataProviderObserver void ProcessAssistanceDataL(TInt aError, RLbsAssistanceDataBuilderSet& aAssistanceData, TPositionInfo& aPosition, TLbsNetPosRequestQuality& aQuality); // CTimer calls void RunL(); // Calls from the test handler void SetResponseTime(TInt32 aTime, TBool aSticky); void SetResponseError(TInt32 aError, TBool aSticky); void SetAssistanceDataMask(TLbsAssistanceDataGroup& aMask); void SetMoreAssistanceDataMask(TLbsAssistanceDataGroup& aMask); void ClearAssistanceDataMasks(); void SetStepMode(TBool aStepMode); void StartNetworkPrivacyRequestL(TLbsNetPosRequestPrivacy& aType, TLbsExternalRequestInfo& aRequestInfo); void CancelNetworkPrivacyRequestL(); void StartNetworkLocationRequestL(); void CancelNetworkLocationRequestL(); void SendResetAssistanceData(TLbsAssistanceDataGroup aMask); private: CLbsNetSimGatewayHandler(CLbsNetSimAssistanceDataProvider& aAssistanceDataProvider); void ConstructL(); // ServiceL handlers void HandleRegisterLcsMoLrL(const RMessage2& aMessage); void HandleMeasurementReportLocationL(const RMessage2& aMessage); void HandleReleaseLcsMoLrL(const RMessage2& aMessage); void HandleMeasurementControlFailureL(const RMessage2& aMessage); void HandleRequestMoreAssistanceDataL(const RMessage2& aMessage); void HandleReleaseLcsLocationNotifcationL(const RMessage2& aMessage); // Others TBool CheckDestinationValidity(TPtrC aDestination); private: enum NextMessage { ENone, // If we are in this state then there has been an issue! EContinueRegisterLcsMoLr1, EContinueRegisterLcsMoLr2, EContinueMeasurementReportLocation, EContinueReleaseLcsMoLr, EContinueRequestMoreAssistanceData, EContinueMtLr, EContinueMeasurementControlFailure, }; CArrayFixFlat<NextMessage> iMessages; void AddMessageL(NextMessage aNextMessage); enum MessageState { ENothing, EMoLr, EMtLr, EMtLr_E, EPrivacy, EPrivacy_E, EX3P, }; MessageState iState; enum MessageSubState // Needs to be known to cancel for MtLr { EPreMrl, // MoLr, X3P: MeasurementReportLocation EPostMrl, }; MessageSubState iSubState; private: // Others void Cancel(MessageState aToStart); void FinishL(); void ResetInternals(); private: static TLbsAssistanceDataGroup iDefaultAssistanceDataMask; CLbsNetSimAssistanceDataProvider& iAssistanceDataProvider; CLbsNetSimTestHandler* iTestHandler; // TLbsAssistanceDataGroup iAssistanceDataMask; TLbsAssistanceDataGroup iMoreAssistanceDataMask; // TInt32 iWaitTime; TBool iWaitTimeSticky; TInt32 iError; TBool iErrorSticky; // Cancelling TBool iMtLrOverrides; TBool iRequestCancelled; MessageState iStartOnComplete; TLbsNetPosRequestPrivacy iPrivacyType; TLbsExternalRequestInfo iPrivacyRequest; // Message handling: AssistanceData TInt iAssistanceDataError; TBool iGotAssistanceData; RLbsAssistanceDataBuilderSet iAssistanceData; RMessage2 iAssistanceDataToFill; // Message handling: RegisterLcsMoLr HBufC* iRegisterLcsMoLrData; // Message handling: ReleaseLcsMoLr TInt iReleaseLcsMoLrReason; RMessage2 iMessageReleaseLcsMoLr; // Message handling: MeasurementControlFailure TInt iMeasurementControlFailureReason; // Message handling: MeasurementReportLocation TInt iMeasurementReportLocationStatus; TPositionInfo iMeasurementReportLocationPosition; RMessage2 iMessageMeasurementReportLocation; // Message handling: MeasurementControlLocation RLbsAssistanceDataBuilderSet iMeasurementControlLocationAssistanceData; TPositionInfo iMeasurementControlLocationPosition; TLbsNetPosRequestQuality iMeasurementControlLocationQuality; // Message Handlers RMessage2 iMessageMeasurementControlFailure; // Notifications RMessage2 iNotificationMeasurementControlLocation; RMessage2 iNotificationRegisterLcsLocation; RMessage2 iNotificationCancelPrivacyRequest; RMessage2 iNotificationNetworkGone; RMessage2 iNotificationResetAssistanceData; }; #endif // LBSNETSIMGATEWAYHANDLER_H