locsrv_plat/oma_supl_asn_codec_plugin_api/inc/epos_comasuplsetcapabilitiesver2.h
changeset 0 667063e416a2
child 20 82ee1f804b63
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locsrv_plat/oma_supl_asn_codec_plugin_api/inc/epos_comasuplsetcapabilitiesver2.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,560 @@
+/*
+* Copyright (c) 2002-2005 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:  Header file for supl set caps ver2 message
+*
+*/
+#ifndef C_COMASuplSETCapabilitiesVer2_H
+#define C_COMASuplSETCapabilitiesVer2_H
+
+#include <e32def.h>
+#include <e32std.h>
+
+
+#include "lbs/epos_comasuplsetcapabilities.h"
+#include "lbs/epos_tomasuplposprotocolversion.h"
+
+const TInt K3GPP2SupPosProtoVerElem = 8;
+
+
+/**
+ * @Description Class to hold the SUPL v2.0 extension to Pos Technolgy
+ *
+ * @since S60 S60_5.2
+ */
+class TOMASuplVer2PosTechExt
+    {
+
+    public: 
+    /**
+     * Constructor for  TOMASuplVer2PosTechExt
+     */
+    IMPORT_C TOMASuplVer2PosTechExt();
+
+   
+    private :      // Positioning Technologies
+
+
+
+    };
+
+/**
+ * @Description Class to hold supported 3GPP2 pos protocol version
+ *
+ * @since S60 S60_5.2
+ */
+class TOMASuplSupported3GPP2PosProtoVer
+    {
+
+    public: 
+
+    IMPORT_C TOMASuplSupported3GPP2PosProtoVer();
+
+
+    public: //Getter Methods
+
+    /**
+     * @Description GetTOMASuplPosProtocolVersion3GPP 
+     */  
+    IMPORT_C void GetTOMASuplSupported3GPP2PosProtoVer(TUint16& aRevNum,TInt& aPointReleaseNumber,TInt& aInternalEditLevel) const;
+
+
+    public:     //Setter Methods
+
+    /**
+     * @Description SetTOMASuplPosProtocolVersion3GPP
+     */  
+    IMPORT_C void SetTOMASuplSupported3GPP2PosProtoVer(TUint16 aRevNumber,TInt aPointReleaseNumber,TInt aInternalEditLevel);
+
+    private :      // Positioning Technologies
+
+    TUint16     iRevNumber;
+    TInt        iPointReleaseNumber;
+    TInt        iInternalEditLevel;
+
+    };
+
+/**
+ * @Description TOMASuplPosProtocolVersion3GPP
+ *
+ * @since S60 S60_5.2
+ */
+class TOMASuplPosProtocolVersion3GPP2
+    {
+
+    public: 
+
+    IMPORT_C TOMASuplPosProtocolVersion3GPP2();
+
+
+    public: //Getter Methods
+
+    /**
+     * @Description GetTOMASuplPosProtocolVersion3GPP 
+     */  
+    IMPORT_C void GetTOMASuplPosProtocolVersion3GPP2(RArray<TOMASuplSupported3GPP2PosProtoVer>& aSupProtoVer) const;
+
+
+    public:     //Setter Methods
+
+    /**
+     * @Description SetTOMASuplPosProtocolVersion3GPP
+     */  
+    IMPORT_C void SetTOMASuplPosProtocolVersion3GPP2(TOMASuplSupported3GPP2PosProtoVer aVersion);
+
+    private :      // Positioning Technologies
+
+    //TOMASuplSupported3GPP2PosProtoVer iSupProtoVer[K3GPP2SupPosProtoVerElem];
+    RArray<TOMASuplSupported3GPP2PosProtoVer> iSupProtoVer;
+
+    };
+
+/**
+ * @Description Class to hold SUPL 2.0 extension to pos protocol
+ *
+ * @since S60 S60_5.2
+ */
+class TOMASuplVer2ProtocolExt
+    {
+
+    public: 
+    /**
+     * Constructor for TOMASuplVer2ProtocolExt
+     */
+    IMPORT_C TOMASuplVer2ProtocolExt();
+
+
+    public: //Getter Methods
+
+    /**
+     * @Description Getter method for pos protocol extn
+     */  
+    IMPORT_C void GetTOMASuplVer2ProtocolExt(TOMASuplPosProtocolVersion& aRRLPVersion,TOMASuplPosProtocolVersion& aRRCVersion,TOMASuplPosProtocolVersion3GPP2& aTIA801Version) const;
+
+
+    public:     //Setter Methods
+
+    /**
+     * @Description Setter method for pos protocol extn
+     */  
+    IMPORT_C void SetTOMASuplVer2ProtocolExt(TOMASuplPosProtocolVersion aRRLPVersion,TOMASuplPosProtocolVersion aRRCVersion,TOMASuplPosProtocolVersion3GPP2 aTIA801Version);
+
+    private :      // Positioning Technologies
+
+    TOMASuplPosProtocolVersion  iPosProtocolVersionRRLP;
+    TOMASuplPosProtocolVersion  iPosProtocolVersionRRC;
+    TOMASuplPosProtocolVersion3GPP2 iPosProtocolVersionTIA801;
+    };
+
+/**
+* @Description TOMASuplPosTechnology2 describes the positioning method extension for SUPL v2.0 . Possible values for POS technology are 
+* - A-GPS SET Assisted only
+* - A-GPS SET Based only
+* - Autonomous GPS
+* - AFLT (Advanced Forward Link Trilateration)
+* - EOTD (Enhanced Observed Time Difference)
+* - OTDOA (Observed Time Difference of Arrival)
+*
+*  @since S60 S60_5.2
+*/
+class TOMASuplPosTechnology2 : public TOMASuplPosTechnology
+{
+
+public: 
+        /**
+         * Constructor for TOMASuplPosTechnology2
+         */
+     	IMPORT_C TOMASuplPosTechnology2();
+
+     
+public:	//Getter Methods
+		/**
+		 * Getter method for Version 2 Pos technology extension
+		 * @since S60 S60_5.2
+		 * @param aExtn The TOMASuplVer2PosTechExt value is returned in this
+		 * @return KErrNone if the value is set and retrieved successfully
+		 *         KErrOMASuplParamNotSet otherwise
+		 */
+        IMPORT_C TInt GetVer2PosExtn(TOMASuplVer2PosTechExt& aExtn) const;
+public:		//Setter Methods
+		/**
+		 * Setter method for  Version 2 Pos technology extension
+		 */
+		IMPORT_C void SetVer2PosExtn(TOMASuplVer2PosTechExt aExtn);
+		
+private :	   // Positioning Technologies
+
+        TBool iIsVer2ExtSet;
+		TOMASuplVer2PosTechExt iVer2Ext;
+	
+};
+
+// End of TPosTechnology
+
+/**
+* @Description TOMASuplPosProtocol determines the underlying control plane
+* positioning protocol. The different possible values for the positioning protocol
+* are 
+* - TIA 801 (Telecommunication Industry Association 801)
+* - RRLP (Radio Resource LCS Protocol)
+* - RRC (Radio Resource Control)
+*
+*  @since S60 S60_5.2
+**/
+class TOMASuplPosProtocol2: public TOMASuplPosProtocol
+{
+
+public: // Construction
+    /**
+     * Constructor for TOMASuplPosProtocol2
+     */
+     IMPORT_C TOMASuplPosProtocol2();
+     
+
+public:	//Getter Methods
+	/**
+	 * Getter method for Posprotocol extension
+	 */
+	    IMPORT_C TInt GetVer2PosProtocolExtn(TOMASuplVer2ProtocolExt& aVer2Extn)const;
+	    
+public: // Setter Methods
+	  /**
+	   * Setter method for Posprotocol extension
+	   */
+	  IMPORT_C void SetVer2PosProtoExtn(TOMASuplVer2ProtocolExt aVer2Extn);
+	  
+private :	//Data members , Positioning protocols
+
+	TBool iIsVer2ExtnSet;
+	TOMASuplVer2ProtocolExt iVer2Ext;
+	
+};
+// End of TPosProtocol2
+
+/**
+ * Class to hold type of service supported
+ */
+class TOMASuplServiceSupported
+    {
+public:
+    /**
+     * Getter method for periodic trigger support
+     */
+    IMPORT_C void GetPeriodicTrigger(TBool &aPeriodicTrigger)const;
+    /**
+     * Getter method for area event trigger support
+     */
+    IMPORT_C void GetAreaEventTrigger(TBool &aAreaEventTrigger)const;
+    
+public:
+    /**
+     * Setter method for periodic trigger support
+     */
+    IMPORT_C void SetPeriodicTrigger(const TBool aPeriodicTrigger);
+    /**
+     * Setter method for area even trigger support
+     */
+    IMPORT_C void SetAreaEventTrigger(const TBool aAreaEventTrigger);
+    
+private:
+    TBool   iPeriodicTrigger;
+    TBool   iAreaEventTrigger;
+    };
+
+
+class TOMASuplGeoAreaShapeSupported
+    {
+public:
+    void GetElipticalArea(TBool &aElipticalArea)const;
+    void GetPolygonalArea(TBool &aPolygonalArea)const;
+
+public:
+    void SetElipticalArea(const TBool aElipticalArea);
+    void SetPolygonalArea(const TBool aPolygonalArea);
+
+private:
+    TBool   iElipticalArea;
+    TBool   iPolygonalArea;
+    };
+
+
+class TOMASuplEventTriggerCapabilities
+    {
+public:
+    void GetGeoAreaSupp(TOMASuplGeoAreaShapeSupported &aGeoAreaSup)const;
+    void GetMaxNumGeoAreaSupported(TInt8 &aMaxNumGeoAreaSupp)const;
+    void GetMaxAreaIdListSupported(TInt8 &aMaxAreaIdListSupp)const;
+    void GetMaxAreaIdSupported(TInt &aMaxAreaIdSupp)const;
+
+public:
+    void SetGeoAreaSupp(const TOMASuplGeoAreaShapeSupported aGeoAreaSup);
+    void SetMaxNumGeoAreaSupported(const TInt8 aMaxNumGeoAreaSupp);
+    void SetMaxAreaIdListSupported(const TInt8 aMaxAreaIdListSupp);
+    void SetMaxAreaIdSupported(const TInt aMaxAreaIdSupp);
+
+private:
+    TOMASuplGeoAreaShapeSupported iGeoAreaSupp;
+    TInt8  iMaxNumGeoAreaSupported;
+    TInt8  iMaxAreaIdListSupported;
+    TInt   iMaxAreaIdSupported;
+    };
+
+class TOMASuplSessionCapabilities
+    {
+public:
+    TOMASuplSessionCapabilities();
+    TInt GetMaxNumberTotalSessions(TInt &aMaxNumberTotalSessions)const;
+    TInt GetMaxNumberPeriodicSessions(TInt8 &aMaxNumberPeriodicSessions)const;
+    TInt GetMaxNumberTriggeredSessions(TInt8 &aMaxNumberTriggeredSessions)const;
+public:
+    void SetMaxNumberTotalSessions(const TInt aMaxNumberTotalSessions);
+    void SetMaxNumberPeriodicSessions(const TInt8 aMaxNumberPeriodicSessions);
+    void SetMaxNumberTriggeredSessions(const TInt8 aMaxNumberTriggeredSessions);
+
+private:
+    TInt iOptionalMask;
+    TInt    iMaxNumberTotalSessions;
+    TInt8   iMaxNumberPeriodicSessions;
+    TInt8   iMaxNumberTriggeredSessions;
+    };
+
+class TOMASuplReportMode
+    {
+public:
+    IMPORT_C  TOMASuplReportMode();
+    IMPORT_C void GetRealTime(TBool &aRealTime)const;
+    IMPORT_C void GetQuasiRealTime(TBool &aQuasiRealTime)const;
+    IMPORT_C void GetBatch(TBool &aBatch)const;
+public:
+    IMPORT_C void SetRealTime(const TBool aRealTime);
+    IMPORT_C void SetQuasiRealTime(const TBool aQuasiRealTime);
+    IMPORT_C void SetBatch(const TBool aBatch);
+private:
+    TBool   iRealTime;
+    TBool   iQuasiRealTime;
+    TBool   iBatch;
+    };
+
+class TOMASuplBatchReportMode
+    {
+public:
+    IMPORT_C TOMASuplBatchReportMode();
+    IMPORT_C TInt GetReportPosition(TBool &aReportPosition)const;
+    IMPORT_C TInt GetReportMeasurement(TBool &aReportMeasurement)const;
+    IMPORT_C TInt GetMaxPositions(TInt &aMaxPositions)const;
+    IMPORT_C TInt GetMaxMeasurements(TInt &aMaxMeasurements)const;
+public:
+    IMPORT_C void SetReportPosition(const TBool aReportPosition);
+    IMPORT_C void SetReportMeasurement(const TBool aReportMeasurement);
+    IMPORT_C void SetMaxPositions(const TInt aMaxPositions);
+    IMPORT_C void SetMaxMeasurements(const TInt aMaxMeasurements);
+private:
+    TBool   iReportPosition;
+    TBool   iReportMeasurements;
+    TInt    iMaxPositions;
+    TInt    iMaxMeasurements;
+    
+    //iReportPosition = 3|iReportMaxMeasurements = 2 | iMaxPositions = 1|iMaxMeasurements
+    TInt iOptionalMask;
+    };
+
+
+class TOMASuplReportingCap
+    {
+public:
+    IMPORT_C TOMASuplReportingCap();
+    IMPORT_C TInt GetReportMode(TOMASuplReportMode &aReportMode)const;
+    IMPORT_C TInt GetBatchReportMode(TOMASuplBatchReportMode &aBatchReportMode)const;
+
+public:
+    IMPORT_C void SetReportMode(const TOMASuplReportMode aReportMode);
+    IMPORT_C void SetBatchReportMode(const TOMASuplBatchReportMode aBatchReportMode);
+
+private:
+    TOMASuplReportMode    iReportMode;
+    TOMASuplBatchReportMode    iBatchRepMode;
+    //iReportMode|iBatchRepMode
+    TInt iOptionalMask;
+    };
+
+class TOMAServiceCapabilities
+    {
+public:
+    TOMAServiceCapabilities();
+    TInt GetSuplServiceSupported(TOMASuplServiceSupported& aServicesSupported)const;
+    TInt GetSuplReportingCap(TOMASuplReportingCap& aReportingCapabilities)const;
+    TInt GetEventTriggerCapabilities(TOMASuplEventTriggerCapabilities& aEventTriggerCapabilities)const;
+    TInt GetSuplSessionCapabilities(TOMASuplSessionCapabilities& aSessionCapabilities)const;
+public:
+    void SetSuplServiceSupported(const TOMASuplServiceSupported aServicesSupported);
+    void SetSuplReportingCap(const TOMASuplReportingCap aReportingCapabilities);
+    void SetEventTriggerCapabilities(const TOMASuplEventTriggerCapabilities aEventTriggerCapabilities);
+    void SetSuplSessionCapabilities(const TOMASuplSessionCapabilities aSessionCapabilities);
+
+private:
+
+    TOMASuplReportingCap iReportingCapabilities;
+    TOMASuplServiceSupported iServicesSupported;
+    TOMASuplEventTriggerCapabilities iEventTriggerCapabilities;
+    TOMASuplSessionCapabilities iSessionCapabilities;
+    //reportingcaps|servicesupp|eventtrigparams|sessioncaps
+    TInt iOptionalMask;
+    };
+
+/**
+ * 
+ * Class to hold SUPL 2.0 extension to SET Capabilities
+ */
+class TOMAVer2SetCapExtn
+    {
+public:
+    /**
+     * constructor for TOMAVer2SetCapExtn
+     */
+    IMPORT_C TOMAVer2SetCapExtn();
+    /**
+     * Getter method for Service caps
+     */
+    IMPORT_C TInt GetServiceCaps(TOMAServiceCapabilities& aServiceCaps)const;
+    /**
+     *Setter methods for Service Caps 
+     */
+    IMPORT_C void SetServiceCaps(const TOMAServiceCapabilities aServiceCaps);
+    
+private:
+    TBool iIsServiceCapSet;
+    TOMAServiceCapabilities iServiceCaps;
+    
+    };
+/**
+* @Description COMASuplSETCapabilitiesVer2 defines the SUPL v2.0 extn to SET capabilities of the SUPL Enabled Terminal.
+* SET capabilities are defined in terms of
+* - POS Technology
+* - Preferred Method and
+* - POS Protocol
+*
+* SUPL Framework retrieves the SET Capabilities for SUPL START and SUPL POS INIT messages
+*
+*  @since S60 S60_5.2
+**/
+
+class COMASuplSETCapabilitiesVer2 : public CBase//: public COMASuplSETCapabilities //Manish
+{
+	public:  // Constructors and destructor
+	    /**
+	     * SUPL 2.0 exetension for  Preferred Method 
+	     */
+	    enum TOMASuplPrefMethod2
+	        {
+	        EOMAPrefMethodUnknown = -1,
+	        EOMAAGpsSETAssitedPreferred = 0,
+	        EOMAAGpsSETBasedPreferred = 1,
+	        EOMANoPreferred = 2,
+	        };
+				 
+     	/**
+        * @Description Creates a new instance of a COMASuplSETCapabilities and sets 
+        * the type in COMASuplInfoRequest to EOMASuplSETCapabilities.
+        *
+        * @return A pointer to COMASuplSETCapabilities. It leaves with KErrNoMemory if object creation fails        
+        */
+        IMPORT_C static COMASuplSETCapabilitiesVer2* NewL();
+        
+        /**
+        * Destructor.
+        */
+        IMPORT_C  ~COMASuplSETCapabilitiesVer2();
+        
+	public:
+
+	    /**
+	     * @Description GetVer2SetCapExtn is used to retrieve the Version 2 extension
+	     * of Set Capabilities.
+	     * @param aCapExtn A Reference Parameter of type TOMAVer2SetCapExtn
+	     * @return KErrNone if parameter is set and retrieved successfully
+	     *         KErrOMASuplParameterNotSet if this paramter is not set
+	     */ 
+	    IMPORT_C TInt GetVer2SetCapExtn(TOMAVer2SetCapExtn& aCapExtn)const;
+	    
+	    /**
+	     * @Description IsVer2SetCapExtnPresent is used to check if the 
+	     * Version 2 extension of Set Capabilities is set or not
+	     * 
+	     * @return ETrue if parameter is set 
+	     *         EFalse if this paramter is not set
+	     */ 
+	    IMPORT_C TBool IsVer2SetCapExtnPresent()const;
+
+	public:
+
+	    /**
+	     * @Description SetVer2SetCapExtn is used to set the Version 2 extension
+	     * of Set Capabilities.
+	     * @param aCapExtn A  Parameter of type TOMAVer2SetCapExtn to be set
+	     */ 
+	    IMPORT_C void SetVer2SetCapExtn(const TOMAVer2SetCapExtn aCapExtn);
+	    
+	public:
+	    
+	   /**
+	    * @Description GetSETCapabilities is invoked by SUPL Framework to retrive the 
+	    * capabilities of the SET. 
+	    * @param aPosTechnology A Reference Parameter of type TOMASuplPosTechnology
+	    * @param aPrefMethod A Reference Parameter of type TOMASuplPrefMethod
+	    * @param aPosProtocol A Reference Parameter of type TOMASuplPosProtocol 
+	    */  
+
+	IMPORT_C void GetSETCapabilities(TOMASuplPosTechnology2& aPosTechnology,
+				  				 	  TOMASuplPrefMethod2&    aPrefMethod,
+				  				 	  TOMASuplPosProtocol2&   aPosProtocol) const;
+
+	   /**
+	    * @Description SetSETCapabilities is invoked by POS Message plug-in to set the capabilities
+	    * supported by the POS Module.
+	    * @param aPosTechnology A parameter of type TOMASuplPosTechnology 
+	    * that sets values for POS Technology
+	    * @param aPrefMethod A parameter of type TOMASuplPrefMethod 
+	    * that sets values for Preferred Method
+	    * @param aPosProtocol A parameter of type TOMASuplPosProtocol 
+	    * that sets values for POS Protocol
+	    */  
+	    IMPORT_C void SetSETCapabilities(const TOMASuplPosTechnology2& aPosTechnology,
+					  				 	 const TOMASuplPrefMethod2&    aPrefMethod,
+					  				 	 const TOMASuplPosProtocol2&   aPosProtocol);
+	public: //From Base Class
+		
+	    /**
+	     * @Description Clone Method
+	     * @return a pionter to clone of type COMASuplSETCapabilitiesVer2 
+	     */
+	    IMPORT_C COMASuplSETCapabilitiesVer2* CloneL();
+	
+	protected:
+	
+	// Default Constructor
+	IMPORT_C COMASuplSETCapabilitiesVer2();
+	//Two phase construction
+	IMPORT_C void ConstructL();
+	
+	private:
+    // Pos Tec
+	TOMASuplPosTechnology2 iPosTechnology; //mandatory parameter
+	TOMASuplPosProtocol2   iPosProtocol; //mandatory parameter
+	TOMASuplPrefMethod2    iPrefMethod;//mandatory parameter
+  	TOMAVer2SetCapExtn    iVer2SetCapExtn; //optional parameter
+  	TBool    iIsVer2SetCapExtnSet;
+	};
+
+
+
+#endif //  _SUPLSETCAPABILITIES2_H