diff -r 000000000000 -r 9cfd9a3ee49c datasourcemodules/gpspositioningmodule/lbsgpspsy/src/cgpspositioner.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datasourcemodules/gpspositioningmodule/lbsgpspsy/src/cgpspositioner.cpp Tue Feb 02 01:50:39 2010 +0200 @@ -0,0 +1,120 @@ +// 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: +// + +/** + @file + @InternalComponent +*/ + +#include +#include +#include + +#include "cgpspositioner.h" +#include "gpspsy.hrh" +#include "agpspsypanic.h" +#include "cpositionerq.h" +#include "crequesthandler.h" +#include "cagpsenvironment.h" +#include "utilfunctions.h" +#include "tagpsrequestparameters.h" +#include "agpsrequestconstants.h" +#include "psylogging.h" + +/* +* +*/ +CGpsPositioner::CGpsPositioner() + { + iState = ERequestStateInitial; + iTerminalAssisted = EFalse; + } + +// ----------------------------------------------------------------------------- +// Destructor +// ----------------------------------------------------------------------------- +// +CGpsPositioner::~CGpsPositioner() + { + TRACESTRING("CGpsPositioner::~CGpsPositioner") + + iEnvironment->UnregisterPSY(this); + iNetRegStatus.Close(); + } + +/** + * Creates a new instance of a CPositioner implementation. + * + * @param aConstructionParameters Construction parameters for CPositioner. + * @return The positioner implementation. + */ +CGpsPositioner* CGpsPositioner::NewL(TAny* aConstructionParameters) + { + CGpsPositioner* self = new( ELeave ) CGpsPositioner; + + CleanupStack::PushL( self ); + self->ConstructL(aConstructionParameters); + CleanupStack::Pop(self); + + return self; + } + +/** + * 2nd phase constructor + * + * @param aConstructionParameters Construction parameters for CPositioner. + */ +void CGpsPositioner::ConstructL(TAny* aConstructionParameters) + { + TRACESTRING("CGpsPositioner::ConstructL") + + // Must call BaseConstructL first thing during construction. + BaseConstructL(aConstructionParameters); + + iEnvironment = CAgpsEnvironment::NewL(); + iEnvironment->RegisterPSYL(this); + iEnvironment->GetEnvCriteriaL(iCriteria, TUid::Uid(KPosGPSPSYImplUid)); + iInactivityTimeout = iEnvironment->GetInactivityTimeoutL(TUid::Uid(KPosGPSPSYImplUid)); + iRequestHandler = iEnvironment->GetRequestHandler(); + + // Get the request timeout from the LS: + if(iEnvironment->ProfileInUse()) // default timeout was taken from profile, so let LS know + { + TPositionQuality quality; + iCriteria.GetRequiredQuality(quality); + iTimeOutInterval = quality.TimeToFirstFix(); + SetPsyDefaultUpdateTimeOut(iTimeOutInterval); + } + + iNetRegStatus.OpenL(); + } + + +void CGpsPositioner::SetModuleId(TPositionInfoBase* aPosInfo) + { + if(aPosInfo) + { + aPosInfo->SetModuleId(TUid::Uid(KPosGPSPSYImplUid)); // Use the PSY module Id rather than the AGPS managers + } + } + +void CGpsPositioner::SetAGPSMode() + { + TRACESTRING("CPositionerSubSession::GpsMode()") + + iAGPSMode = KAutonomousMode; + } + +// End of File