--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/datasourceadaptation/gpsdatasourceadaptation/inc/EPos_MPosParameterObserver.h Tue Feb 02 01:50:39 2010 +0200
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2005-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 MPOSPARAMETEROBSERVER_H
+#define MPOSPARAMETEROBSERVER_H
+
+// FORWARD DECLARATION
+class TPositionQuality;
+
+// CLASS DECLARATION
+
+/**
+* Interface implemented by the Location Server to supply positioning related
+* parameter values.
+*/
+class MPosParameterObserver
+ {
+ public: // New functions
+
+ /**
+ * Get the quality of service requested by the client.
+ *
+ * @param aPositionQuality The requested quality of service.
+ * @return KErrNotFound if there is no requested quality of service,
+ * KErrNone if there is.
+ */
+ virtual TInt GetRequiredPositionQuality(
+ /* OUT */ TPositionQuality& aPositionQuality
+ ) const = 0;
+
+ /**
+ * Get the earliest allowed time of an old position fix, based on the
+ * current max age set by the client.
+ *
+ * The PSY may save the result from the latest position request and
+ * return the same result in the next position request if the client
+ * says it's ok. Max age tells the PSY how old the stored position is
+ * allowed to be. If the stored position is too old or the PSY does not
+ * support max age, a normal positioning should be performed.
+ *
+ * @param aMaxAge On return, will contain the earliest allowed time of
+ * an old position fix. If no max age is defined aMaxAge will contain
+ * a time set to zero.
+ */
+ virtual void GetMaxAge(
+ /* IN */ TTime& aMaxAge
+ ) const = 0;
+
+ /**
+ * Checks if the client allows a partial position update.
+ *
+ * A partial update result does not need to contain all parameters. The
+ * only mandatory parameters are latitude, longitude and time of fix.
+ * Everything else is optional.
+ *
+ * If a partial update is returned to the client in a
+ * NotifyPositionUpdate call, the completion code must be set to
+ * KPositionPartialUpdate.
+ *
+ * @return ETrue if partial position updates are allowed, otherwise
+ * EFalse.
+ */
+ virtual TBool IsPartialUpdateAllowed() const = 0;
+
+
+
+ /**
+ * Returns the location update timeout associated with the subsession. The method returns a real timeout,
+ * which is defined and used by the Location Server. It may be different from the timeout set by the client
+ * or default PSY timeout.
+ *
+ * @param aUpdateTimeOut [Out] The location update timeout.
+ */
+ virtual void GetUpdateTimeOut(TTimeIntervalMicroSeconds& aUpdateTimeOut) const = 0;
+
+ /**
+ * Called to inform the Location Server about the PSY default update timeout. The Location
+ * Server may use this value to calculate the update timeout it uses.
+ * When this method is called, it does not affect the currect request. So, it must be called in advance
+ * before a request comes from the Location Server.
+ *
+ * @param aUpdateTimeOut [In] The PSY default location update timeout.
+ */
+ virtual void SetPsyDefaultUpdateTimeOut(const TTimeIntervalMicroSeconds& aUpdateTimeOut) = 0;
+
+
+ /**
+ * Extends the active request timeout by the value specified. Only the current active request is
+ * affected and the changes are not stored. That is the value returned by GetUpdateTimeOut and
+ * the default PSY timeout set by SetPsyDefaultUpdateTimeOut are not changed.
+ * This method is used, for example, to apply FNP lag.
+ *
+ * @param aUpdateTimeOut [In] The time to extend timeout for.
+ */
+ virtual void ExtendUpdateTimeOut(const TTimeIntervalMicroSeconds& aAdditionalTime) = 0;
+
+ };
+
+#endif // MPOSPARAMETEROBSERVER_H
+
+// End of File