epoc32/include/lbsfields.h
branchSymbian2
changeset 2 2fe1408b6811
child 4 837f303aceeb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/lbsfields.h	Tue Mar 16 16:12:26 2010 +0000
@@ -0,0 +1,635 @@
+/*
+* 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Name        : LbsFields.h
+* Part of     : Mobile Location Framework/Location FW
+* Interface   : Location Acquisition API
+* Position data Fields manager
+* Version     :
+*
+*/
+
+
+
+#ifndef __LBSFIELDS_H__
+#define __LBSFIELDS_H__
+
+#include <e32std.h>
+#include <lbsfieldids.h>
+
+/*
+ * This header file defines the helper classes used by HPositionGenericInfo
+ * The client should not use this class to access any positioning related information.
+ * Instead the cleitn should use the methods provided by HGenericPositionInfo.
+ */
+
+/**
+ * Standard position field identifiers. It takes one of the enumerated  values of _TPositionFieldId
+ * @publishedAll
+ * @released
+*/
+typedef TUint16 TPositionFieldId;
+
+/**
+ * Array of standard position field identifiers
+ * @publishedAll
+ * @released
+ */
+typedef TPositionFieldId TPositionFieldIdList[];
+class HPositionGenericInfo;
+
+
+/**
+ * This is an internal class to provide the interface for the
+ * HPositionGenericInfo::GetValue() and HPositionGenericInfo::SetValue()
+ * methods. Methods in this class are not intended to be called directly.
+ * Clients should use HPositionGenericInfo::GetValue() and
+ * HPositionGenericInfo::SetValue() methods.
+ * @internalTechnology
+ * @released
+ */
+class PositionFieldManager
+	{
+public:
+	/**
+	 * Supported data types
+	 */
+	enum TFieldType
+		{
+		/// Undefined data type. This value should not be used.
+		EUndefined,
+		/// TInt8 datatype
+		ETInt8,
+		/// TInt16 datatype
+		ETInt16,
+		/// TInt32 datatype
+		ETInt32,
+		/// TInt64 datatype
+		ETInt64,
+		/// TUint8 datatype
+		ETUint8,
+		/// TUint16 datatype
+		ETUint16,
+		/// TUint32 datatype
+		ETUint32,
+		/// TReal32 datatype
+		ETReal32,
+		/// TReal64 datatype
+		ETReal64,
+		/// TTime datatype
+		ETTime,
+		/// Time specified in microseconds
+		ETTimeIntervalMicroSeconds,
+		/// 8-bit descriptor datatype
+		ETDesC8,
+		/// 16-bit descriptor datatype
+		ETDesC16
+		};
+
+friend class HPositionGenericInfo;
+private:
+    /**
+     * Set the value for a location field of data type TInt8 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              TInt8 aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TInt8 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param[in] aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TInt8& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TInt16 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              TInt16 aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TInt16 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[in] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TInt16& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TInt32 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              TInt32 aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TInt32 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TInt32& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TInt64 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              const TInt64& aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TInt64 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TInt64& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TUint8 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              TUint8 aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TUint8 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TUint8& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TUint16 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              TUint16 aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TUint16 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TUint16& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TUint32 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              TUint32 aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TUint32 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TUint32& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TReal32 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              TReal32 aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TReal32 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TReal32& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TReal64 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              const TReal64& aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TReal64 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TReal64& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TDesC8 & TDes8 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              const TDesC8& aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TDes8 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TDes8& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TDesC16 & TDes16 in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              const TDesC16& aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TDes16 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TDes16& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TPtrC8 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TPtrC8& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TPtrC16 from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TPtrC16& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TTime in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              const TTime& aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TTime from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TTime& aValue,
+	                              const HPositionGenericInfo& aInfo);
+
+    /**
+     * Set the value for a location field of data type TTimeIntervalMicroSeconds in the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field to be copied into the HPositionGenericInfo.
+     * @param aValue Value to be copied into the HPositionGenericInfo.
+     * @param aInfo The HPositionGenericInfo object where this field needs to
+     * be added.
+     * @return KErrArgument if aFieldId is EPositionFieldNone.
+     * @return KErrPositionBufferOverflow if aValue will not fit in the HPositionGenericInfo
+     * object.
+     * @return KErrOverflow if there are already KPositionMaxReturnableFields set in the
+     * HPositionGenericInfo object.
+     * @return KErrNone if the SetValue was successful.
+     */
+	IMPORT_C static TInt SetValue(TPositionFieldId aFieldId,
+	                              const TTimeIntervalMicroSeconds& aValue,
+	                              HPositionGenericInfo& aInfo);
+
+    /**
+     * Get the value for a location field of data type TTimeIntervalMicroSeconds from the
+     * HPositionGenericInfo.
+     * @param aFieldId Id of the field for which the value should be read from
+     * HPositionGenericInfo.
+     * @param[out] aValue The object where the data from the
+     * HPositionGenericInfo is returned.
+     * @param aInfo The HPositionGenericInfo object from where this field needs
+     * to be read.
+     * @return KErrNone is the operation was successful.
+     * @return KErrNotFound if an object with aFieldId cannot be found in aInfo.
+     */
+	IMPORT_C static TInt GetValue(TPositionFieldId aFieldId,
+	                              TTimeIntervalMicroSeconds& aValue,
+	                              const HPositionGenericInfo& aInfo);
+	};
+
+/**
+ * This is an internal class used for indexing entries in HPositionGenericInfo.
+ * Methods in this class are not intended to be called directly. Clients should use
+ * HPositionGenericInfo::GetValue() and HPositionGenericInfo::SetValue() methods.
+ * @internalTechnology
+ * @released
+ */
+class TPositionFieldIndex
+	{
+public:
+    /** Constructor */
+	inline TPositionFieldIndex();
+
+    /**
+     * Get the field ID referred to by this object.
+     * @return The Field Id. The Id is one of the enumerated values of
+     * #_TPositionFieldId.
+     */
+	inline TPositionFieldId FieldId() const;
+	/**
+   	 * Get the offset in buffer where this field is contained.
+	 * @return The offset in the buffer.
+	 */
+	inline TUint16 FieldStartPos() const;
+	/**
+     * Get the data type of this field.
+	 * @return The data type of this field. The data type is one of the
+	 * enumerated values of PositionFieldManager::TFieldType.
+	 */
+	inline PositionFieldManager::TFieldType FieldType() const;
+    /**
+     * Set the field ID referred to by this object.
+     * @param aFieldId The Id of the field referred by this object. The Id is
+     * one of the enumerated values of #_TPositionFieldId.
+     */
+	inline void SetFieldId(TPositionFieldId aFieldId);
+	/**
+	 * Set the offset in buffer where this field is contained.
+	 * @param aFieldStartPos The offset in the buffer where this field is added.
+	 */
+	inline void SetFieldStartPos(TUint16 aFieldStartPos);
+	/**
+	 * Set the data type of this field.
+	 * @param aFieldType The data type of this field. The data type is one of
+	 * the enumerated values of PositionFieldManager::TFieldType.
+	 */
+	inline void SetFieldType(PositionFieldManager::TFieldType aFieldType);
+
+private:
+	/** Id of the field that this index refers to. */
+	TPositionFieldId iFieldId;
+	/** Offset from HPositionGenericInfo::iBuffer that the object referred to by
+	this index starts at. */
+	TUint16 iFieldStartPos;
+	/** Type of the data that this index refers to. */
+	PositionFieldManager::TFieldType iFieldType;
+	};
+
+#endif //__LBSFIELDS_H__