diff -r 000000000000 -r 9cfd9a3ee49c networkprotocolmodules/suplprotocolmodule/SuplProtocol/inc/suplassistancedatamgr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkprotocolmodules/suplprotocolmodule/SuplProtocol/inc/suplassistancedatamgr.h Tue Feb 02 01:50:39 2010 +0200 @@ -0,0 +1,128 @@ +// 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: +// This file defines the class that manages assistance data +// during active location requests. +// +// + +/** + @file + @internalTechnology + @deprecated +*/ + +#ifndef __SUPLASSISTANCEDATAMGR_H__ +#define __SUPLASSISTANCEDATAMGR_H__ + +#include +#include +#include "lbstimer.h" +#include "suplprotocolmanager.h" + +/** Assistance Data Manager class. + +This class contains the logic needed for handling Assistance Data request and reports +that is needed due to the fact that there are multiple potential sources of assistance +data (MOLR session, MTLR session, etc). + +Throughout this class state machines (MOLR, MTLR) are identified by their service type +(@see TLbsNetProtocolService) + +This class is used to remember what assitance data types were requested from each state +machine and reports back to LBS any missing assistance data types as well as any valid +assitance data types that have been collected by the machines. + +This class takes also care to notify LBS of a Reference Location if it is found in an +assistance data report. + +*/ +NONSHARABLE_CLASS(CSuplAssistanceDataManager) : public CBase, public MLbsCallbackTimerObserver + { + +public: + + static CSuplAssistanceDataManager* NewL(MSuplProtocolManagerObserver& aGateway); + ~CSuplAssistanceDataManager(); + + MLbsNetworkProtocolObserver::TLbsNetProtocolServiceMask ProcessDataRequest(TLbsAsistanceDataGroup& aDataRequestMask); + void AssistanceDataReport(const RLbsAssistanceDataBuilderSet& aAssitanceData, + const TLbsAsistanceDataGroup& aDataReportMask, TInt aReason, + const MLbsNetworkProtocolObserver::TLbsNetProtocolService& aStateMachine, + const TLbsNetSessionId& sessionId); + + void MachineReadyForAssistanceDataRequest(const MLbsNetworkProtocolObserver::TLbsNetProtocolService& aStateMachine); + void MachineTerminated(const MLbsNetworkProtocolObserver::TLbsNetProtocolService& aStateMachine); + + // MLbsCallbackTimerObserver methods + void OnTimerEventL(TInt aTimerId); + TInt OnTimerError(TInt aTimerId, TInt aError); + + +private: + + CSuplAssistanceDataManager(MSuplProtocolManagerObserver& aGateway); + void ConstructL(); + +private: + + /** Protocol Manager Observer + Reference to the Gateway Interface for + reporting assistance data (including errors) + back to LBS. + */ + MSuplProtocolManagerObserver& iGateway; + + /** Reported data mask + This reflects the set of data reported to LBS in the last + second (used to prevent re-requesting assistance data + when an assistance data request from LBS crosses in transit + with an assitance data report sent to LBS) + */ + TLbsAsistanceDataGroup iReportedDataMask; + + /** Peding Assistance Data mask + This reflects the set of data types that have been + requested by LBS but it has not been possible to + request from any state machine yet (no machine has + become ready since the request was made). + */ + TLbsAsistanceDataGroup iPendingDataMask; + + /** MOLR Assitance Data Mask + Assistance Data Types being obtained through + the MOLR state machine + */ + TLbsAsistanceDataGroup iMoLrRequestedDataMask; + + /** MTLR Assistance Data Mask + Assistance Data Types being obtained through + the MTLR state machine + */ + TLbsAsistanceDataGroup iMtLrRequestedDataMask; + + /** Used to hold a bit mask of state machines + that are ready to take assitance data requests. + The state machines are identified in the mask + by their corresponding TLbsNetProtocolService + value + */ + MLbsNetworkProtocolObserver::TLbsNetProtocolServiceMask iReadyMachinesMask; + + /** Timer for remembering for 1 second what + assistance data have been reported to LBS. + */ + CLbsCallbackTimer* iAssistDataReportTimer; + }; + +#endif // __SUPLASSISTANCEDATAMGR_H__