diff -r 000000000000 -r 9cfd9a3ee49c locationmgmt/agpslocationmgr/inc/lbsnetworkgatewayhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/locationmgmt/agpslocationmgr/inc/lbsnetworkgatewayhandler.h Tue Feb 02 01:50:39 2010 +0200 @@ -0,0 +1,79 @@ +// 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: +// Definition of assistance data handler sub-component of agps manager +// +// + +/** + @file + @internalTechnology +*/ + +#ifndef LBSNETWORKREQUESTHANDLER_H +#define LBSNETWORKREQUESTHANDLER_H + +#include +#include "lbscommoninternaldatatypes.h" +#include +#include "lbsnetinternalapi.h" + +#include "LbsInternalInterface.h" +#include "lbsassistancedatacacheapi.h" +#include "lbsnetinternalmsgfifo.h" + +class MNetworkGatewayHandlerObserver + { +public: + virtual void OnAssistanceDataResponse(TInt aError, TLbsAsistanceDataGroup aMask) = 0; + virtual void OnSessionComplete(TInt aReason, const TLbsNetSessionIdInt& aSessionId) = 0; + }; + +class CNetworkGatewayHandler : public CActive, private MLbsNetChannelObserver + { +public: + static CNetworkGatewayHandler* NewL(MNetworkGatewayHandlerObserver* aObserver); + ~CNetworkGatewayHandler(); + + TInt GetAssistanceDataItem(TLbsAssistanceDataItem aItem,RDataReaderRootBase& aDataRoot, TTime& aTimeStamp); + TInt GetAssistanceDataItemTimeStamp(TLbsAssistanceDataItem aItem, TTime& aTimeStamp); + void SendAssistanceDataRequest(TLbsAsistanceDataGroup aDataItemMask); + void SendSelfLocationRequest(const TLbsNetSessionIdInt& aSessionId, const TLbsNetPosRequestOptionsAssistanceInt& aOptions); + void SendSelfLocationCancel(const TLbsNetSessionIdInt& aSessionId, TInt aReason); + void SendSystemStatusAdvice(TBool aTracking); + +private: + CNetworkGatewayHandler(MNetworkGatewayHandlerObserver* aObserver); + void ConstructL(); + + //from MLbsNetChannelObserver + void ProcessNetChannelMessage(RLbsNetChannel::TLbsNetChannelId aChannelId, const TLbsNetInternalMsgBase& aMessage); + + //from CActive + void RunL(); + void DoCancel(); + TInt RunError(TInt aError); + + // Helpers + void SendOrQueueMessage(TLbsNetInternalMsgBase& aMsg); + void QueueMessage(TLbsNetInternalMsgBase& aMsg); + +private: + MNetworkGatewayHandlerObserver* iObserver; + RAssistanceDataCache iAssistanceDataCache; + RLbsNetChannel iNGChannel; + RLbsNetMsgFifo iQ; + }; + +#endif // LBSNETWORKREQUESTHANDLER_H +