locsrv_plat/oma_supl_asn_codec_plugin_api/inc/epos_comasuplstartver2.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_comasuplstartver2.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,625 @@
+/*
+* 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 2.0 start message
+*
+*/
+
+#ifndef C_COMASuplStartVer2_H
+#define C_COMASuplStartVer2_H
+
+// INCLUDES
+#include <e32def.h>
+#include <e32base.h>
+
+#include <epos_comasuplstart.h>
+
+#include "epos_comasuplasnmessagebase.h"
+#include "epos_tomasuplqop.h"
+#include "epos_tomasuplecellinfo.h"
+#include "epos_suplconstants.h"
+#include "epos_comasuplstart.h"
+
+//Forward declaration
+class COMASuplSETCapabilitiesVer2;
+class COMASuplLocationIdVer2;
+class COMASuplPosition;
+/**
+ *  Class for providing the location id data for suplstart message
+ *
+ *  @lib eposomasuplasnconverter.lib
+ *  @since S60 S60_5.2
+ */
+
+class COMASuplLocationIdData: public CBase
+    {
+    public:  // Constructors and destructor
+    
+        /**
+         * @Description Creates a new instance of a COMASuplLocationIdData
+         *
+         * @return A pointer to COMASuplLocationIdData
+         * It leaves with KErrNoMemory if object creation fails        
+         */
+        IMPORT_C static COMASuplLocationIdData* NewL();
+    
+        /**
+         * Destructor.
+         */
+        IMPORT_C ~COMASuplLocationIdData();
+    
+    public:
+        /**
+         * Setter method for Time Stamp
+         */
+        IMPORT_C void SetTimeStamp(const TInt32 aTime);        
+        /**
+         * Setter method for Serving Flag
+         */
+        IMPORT_C void SetServingFlag(const TBool aFlag);
+        
+        /**
+         * Setter method for Location Id
+         * @param aLocationId location id to be set in location id data
+         *         ownership is transferred to COMASuplLocationIdData object
+         */
+        IMPORT_C void SetLocationId(COMASuplLocationIdVer2* aLocationId);
+        
+        /**
+         * Setter method for Enhanced Cell Info
+         */
+        IMPORT_C void SetECellInfo(TOMASuplECellInfo aMmCellInfo);
+        
+        /**
+         * Getter method for time stamp
+         */
+        IMPORT_C void GetTimeStamp(TInt32& aTime)const;        
+
+        /**
+         * getter method for serving flag
+         */
+        IMPORT_C void GetServingFlag(TBool& aFlag)const;
+
+        /**
+         * Getter method for location id
+         * @param aLocationId Returns a reference to the location id member
+         *         Ownership is transferred to the location id data object
+         */
+        IMPORT_C void GetLocationId(COMASuplLocationIdVer2*& aLocationId)const;
+        
+        /**
+         * Getter method for enhanced cell info
+         */
+        IMPORT_C TInt GetECellInfo(TOMASuplECellInfo& aMmCellInfo)const;
+        
+    public:
+        /**
+         * Clone method for COMASuplLocationIdData
+         * @return Returns a clone of Location Id data
+         */
+        IMPORT_C COMASuplLocationIdData* CloneL();
+    private:
+    
+        /**
+         * C++ default constructor.
+         */
+        COMASuplLocationIdData();
+    
+        /**
+         * By default Symbian 2nd phase constructor is private.
+         */
+        void ConstructL();
+        
+    private:    
+        
+        TInt32 iRelativeTimeStamp;
+        TBool   iServingFlag;
+        COMASuplLocationIdVer2* iLocationId2;
+        /*To hold E-cell id data*/
+        TOMASuplECellInfo iMmCellInfo;
+        TBool iECId;
+    };
+
+/**
+ *  Class for providing the multiple location id 
+ *
+ *  @lib eposomasuplasnconverter.lib
+ *  @since S60 S60_5.2
+ */
+class COMASuplMultipleLocIds: public CBase
+    {
+    public:  // Constructors and destructor
+    
+        /**
+         * @Description Creates a new instance of a COMASuplMultipleLocIds
+         *
+         * @return A pointer to COMASuplMultipleLocIds
+         * It leaves with KErrNoMemory if object creation fails        
+         */
+        IMPORT_C static COMASuplMultipleLocIds* NewL();
+    
+        /**
+         * Destructor.
+         */
+        IMPORT_C ~COMASuplMultipleLocIds();
+        
+    public:
+        /**
+         * Setter method to set COMASuplMultipleLocIds in the Version 2 SUPL Start Extension
+         * @param aLocIdData the location id data to be added to the location id data array
+         *        the ownership of the object is trasferred to the location id data array in the
+         *       multiple location id  object
+         */
+        IMPORT_C void AddNextLocIdData(COMASuplLocationIdData* aLocIdData);
+
+    public:
+        /**
+         * Getter method to set COMASuplMultipleLocIds in the Version 2 SUPL Start Extension
+         * @param aLocationIdDataEle the location id data elements are returned in this
+         *        ownership of the  COMASuplLocationIdData pointer present in aLocationIdDataEle
+         *        are retined in the original COMASuplMultipleLocIds object from whcih they were retrieved.
+         *        However the ownership of the array itself is with the caller.
+         */
+        IMPORT_C void GetLocIdDataArray(RPointerArray<COMASuplLocationIdData>& aLocationIdDataEle);
+        
+        
+        /**
+         * Clone Method for Mupltiple Loc Ids
+         * @return returns a clone of the multiple location id object 
+         */
+        IMPORT_C COMASuplMultipleLocIds* CloneL();
+    private:
+    
+        /**
+         * C++ default constructor.
+         */
+        COMASuplMultipleLocIds();
+    
+        /**
+         * By default Symbian 2nd phase constructor is private.
+         */
+        void ConstructL();
+        
+    private:    
+        
+        RPointerArray<COMASuplLocationIdData> iLocationIdDataEle;
+    };
+
+/**
+ *  Class for providing the third party id 
+ *
+ *  @lib eposomasuplasnconverter.lib
+ *  @since S60 S60_5.2
+ */
+class COMASuplThirdpartyId : public CBase
+    {
+    public:  // Constructors and destructor
+    
+        /**
+         * @Description Creates a new instance of a COMASuplThirdpartyId
+         * @since S60 S60_5.2
+         * @return A pointer to COMASuplThirdpartyId
+         * It leaves with KErrNoMemory if object creation fails        
+         */
+        IMPORT_C static COMASuplThirdpartyId* NewL();
+    
+        /**
+         * Destructor.
+         */
+        IMPORT_C ~COMASuplThirdpartyId();
+    
+    private:
+    
+        /**
+         * C++ default constructor.
+         */
+        COMASuplThirdpartyId();
+    
+        /**
+         * By default Symbian 2nd phase constructor is private.
+         */
+        void ConstructL();
+        
+    public:
+
+        /**
+              Enums for tyep of third party Information           
+         */
+        enum TOMASuplThirdPartyInfoType
+            {
+            EThirdPartyUnknown = -1,
+            EThirdPartyLogicalName = 0,
+            EThirdPartyMSISDN,
+            EThirdPartyEmail,
+            EThirdPartySIPURI,
+            EThirdPartyIMSPublicId,
+            EThirdPartyMin,
+            EThirdPartyMDN,
+            EThirdPartyURI
+            };
+
+    public:
+        /**
+         * Setter method to set logical name
+         */
+        IMPORT_C void SetLogicalName(const TDesC& aLogicalName);
+
+        /**
+         * Setter method to set MSISDN
+         */
+        IMPORT_C void SetMSISDN(const TDesC8& aMSISDN);
+
+        /**
+         * Setter method to set EMail address
+         */
+        IMPORT_C void SetEmailAddress(const TDesC& aEmailAddress);
+
+        /**
+         * Setter method to set SIP URI
+         */
+        IMPORT_C void SetSipUri(const TDesC8& aSIPUri);
+
+        /**
+         * Setter method to set IMS public id
+         */
+        IMPORT_C void SetIMSPublicId(const TDesC8& aPublicId);
+
+        /**
+         * Setter method to set Min parameter
+         */
+        IMPORT_C void SetMinThirdPartyId(const TDesC8& aMin);
+        /**
+         * Setter method to set Mdn parameter
+         */
+        IMPORT_C void SetMdnThirdPartyId(const TDesC8& aMdn);
+
+        /**
+         * Setter method to set URI
+         */
+        IMPORT_C void SetURI(const TDesC8& aURI);
+
+
+    public:
+        /**
+         * Getter method to get logical name
+         */
+        IMPORT_C void GetLogicalName(TDes& aLogicalName);
+
+        /**
+         * Getter method to Get MSISDN
+         */
+        IMPORT_C void GetMSISDN(TDes8& aMSISDN);
+
+        /**
+         * Getter method to Get EMail address
+         */
+        IMPORT_C void GetEmailAddress(TDes& aEmailAddress);
+
+        /**
+         * Getter method to Get SIP URI
+         */
+        IMPORT_C void GetSipUri(TDes8& aSIPUri);
+
+        /**
+         * Getter method to Get IMS public id
+         */
+        IMPORT_C void GetIMSPublicId(TDes8& aPublicId);
+
+        /**
+         * Getter method to Get Min parameter
+         */
+        IMPORT_C void GetMinThirdPartyId(TDes8& aMin);
+        /**
+         * Getter method to Get Mdn parameter
+         */
+        IMPORT_C void GetMdnThirdPartyId(TDes8& aMdn);
+
+        /**
+         * Getter method to Get URI
+         */
+        IMPORT_C void GetURI(TDes8& aURI);
+
+        /**
+         * Getter method to return the type of third party id present
+         */
+        IMPORT_C TOMASuplThirdPartyInfoType GetType();
+        
+        /**
+         * Clone Method for COMASuplThirdpartyId
+         */ 
+        IMPORT_C COMASuplThirdpartyId* CloneL();
+    private: 
+        
+        TOMASuplThirdPartyInfoType iType;
+        HBufC16*    iLogicalName;
+        TBuf8<KThirdPartyOctetLen> iMSISDN;
+        HBufC16*    iEMailAddress;
+        HBufC8*      iSipUri;
+        HBufC8*     iIMSPublicId;
+        TBuf8<KThirdPartyMinLen> iMin;
+        TBuf8<KThirdPartyOctetLen> iMdn;
+        HBufC8*     iURI;
+
+    };
+/**
+ *  Class for providing the third party id data set 
+ *
+ *  @lib eposomasuplasnconverter.lib
+ *  @since S60 S60_5.2
+ */
+class COMASuplThirdPartyIds:public CBase
+    {
+
+public:  // Constructors and destructor
+    
+    /**
+     * @Description Creates a new instance of a COMASuplThirdPartyIds
+     * @since S60 S60_5.2
+     * @return A pointer to COMASuplThirdPartyIds
+     * It leaves with KErrNoMemory if object creation fails        
+     */
+    IMPORT_C static COMASuplThirdPartyIds* NewL();
+
+    /**
+     * Destructor.
+     */
+    IMPORT_C ~COMASuplThirdPartyIds();
+
+    /**
+     * Clone Method
+     */
+    IMPORT_C COMASuplThirdPartyIds* CloneL(); 
+private:
+
+    /**
+     * C++ default constructor.
+     */
+    COMASuplThirdPartyIds();
+
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     */
+    void ConstructL();
+    
+public:
+    
+    /**
+     * Setter method to set COMASuplThirdpartyId in the COMASuplThirdPartyIds object 
+     * @param aThirdPartyId the third party id data to be added to the third party id 
+     *         data array.The ownership of the object that is set is trasferred to the 
+     *         COMASuplThirdpartyId data array in the third party id  object
+     */
+
+    IMPORT_C void AddThirdPartyId(COMASuplThirdpartyId* aThirdPartyId);
+    
+public:
+    /**
+     * Getter method to set COMASuplThirdpartyId in the COMASuplThirdPartyIds object
+     * @param aThirdpartyArr the third party id data elements are returned in this
+     *        ownership of the  COMASuplThirdpartyId pointer present in aThirdpartyArr
+     *        are retained in the original COMASuplThirdpartyIds object from which they were retrieved.
+     *        However the ownership of the array itself is with the caller.
+     */
+
+    /**
+     * Getter method to set COMASuplThirdpartyId in the Version 2 SUPL Start Extension
+     */
+    IMPORT_C void GetThirdPartyIds(RPointerArray<COMASuplThirdpartyId>& aThirdpartyArr)const;
+
+private:    
+    RPointerArray<COMASuplThirdpartyId> iThirdpartyArr;
+    };
+/**
+ *  Class for providing the SUPL v2.0 extension a for suplstart message
+ *
+ *  @lib eposomasuplasnconverter.lib
+ *  @since S60 S60_5.2
+ */
+class COMASuplVer2SuplStartExtn : public CBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+         * @Description Creates a new instance of a COMASuplVer2SuplStartExtn
+         * @since S60 S60_5.2
+         * @return A pointer to COMASuplVer2SuplStartExtn
+         * It leaves with KErrNoMemory if object creation fails        
+         */
+        IMPORT_C static COMASuplVer2SuplStartExtn* NewL();
+    
+        /**
+         * Destructor.
+         */
+        IMPORT_C ~COMASuplVer2SuplStartExtn();
+    
+    private:
+    
+        /**
+         * C++ default constructor.
+         */
+        COMASuplVer2SuplStartExtn();
+    
+        /**
+         * By default Symbian 2nd phase constructor is private.
+         */
+        void ConstructL();
+        
+    public:
+        /**
+         * Setter method to set COMASuplMultipleLocIds in the Version 2 SUPL Start Extension
+         * @since S60 S60_5.2
+         * @param aMultipleLocIds multiple location id to be set in supl start message
+         *        ownership is transferred to the SUPL Start message.
+         */
+        IMPORT_C void SetMultipleLocIds(COMASuplMultipleLocIds* aMultipleLocIds);
+
+        /**
+         * Setter method to set COMASuplThirdpartyId in the Version 2 SUPL Start Extension
+         * ownership is transferred to the SUPL Start extension
+         * @since S60 S60_5.2
+         */
+        IMPORT_C void SetThirdParty(COMASuplThirdPartyIds* aThirdParty);
+
+        /**
+         * Setter method to set COMASuplPosition in the Version 2 SUPL Start Extension
+         * Ownership of the set object is transferred to the SUPL Start extension message
+         * @since S60 S60_5.2
+         */
+        IMPORT_C void SetPosition(COMASuplPosition* aPosition);
+        
+    public:
+        /**
+         * Getter method to set COMASuplMultipleLocIds in the Version 2 SUPL Start Extension
+         * @since S60 S60_5.2
+         * @param aMultipleLocIds a reference to the multiple location id member is returned in this
+         *        Ownership of the returned object is retained in the SUPL Start Extension object
+         */
+        IMPORT_C void GetMultipleLocIds(COMASuplMultipleLocIds*& aMultipleLocIds)const;
+
+        /**
+         * Getter method to set COMASuplThirdpartyId in the Version 2 SUPL Start Extension
+         * @since S60 S60_5.2
+         * @param aThirdParty a reference to the third party id member is returned in this
+         *        Ownership of the returned object is retained in the SUPL Start Extension object
+         */
+        IMPORT_C void GetThirdParty(COMASuplThirdPartyIds*& aThirdParty)const;
+
+        /**
+         * Getter method to set COMASuplPosition in the Version 2 SUPL Start Extension
+         * @param aPosition a reference to the position member is returned in this
+         *        Ownership of the returned object is retained in the SUPL Start Extension object
+         */
+        IMPORT_C void GetPosition(COMASuplPosition*& aPosition)const;
+        
+        /**
+         * Clone method for COMASuplVer2SuplStartExtn
+         */
+        IMPORT_C COMASuplVer2SuplStartExtn* CloneL();
+    private:    
+        
+        COMASuplMultipleLocIds* iMultipleLocIds;
+        
+        COMASuplThirdPartyIds* iThirdparty;
+        
+        COMASuplPosition* iPosition;
+    };
+
+/**
+ *  Class for providing the suplstart message
+ *  For holding the Supl Start message and for encoding the supl start message 
+ *  @lib eposomasuplasnconverter.lib
+ *  @since S60 S60_5.2
+ */
+
+class COMASuplStartVer2  : public COMASuplStart
+ {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two phased constructor
+        * @since S60 S60_5.2
+        * @param None
+        * @return COMASuplStartVer2 pointer to SuplStart Extentiosn Message
+        */         
+    
+	    IMPORT_C static COMASuplStartVer2* NewL();
+    
+    	/**
+        * Destructor
+        * @since S60 S60_5.2
+        * @param None
+        * @return None
+        */  
+     	IMPORT_C ~COMASuplStartVer2();
+                
+    public:
+	    /**
+        * Getter method for SuplStart2
+        * @since S60 S60_5.2
+        * @param aSuplSETCaps SetCapabilities
+        * @param aSuplLocationId LocationID
+        * @return None
+        */
+	 	IMPORT_C void SuplStart(COMASuplSETCapabilitiesVer2*& aSuplSETCaps,
+						  		COMASuplLocationIdVer2*& aSuplLocationId,
+						  		TBool& aeCID)const;
+        
+        /**
+        * Setter method for Supl start
+        * @since S60 S60_5.2
+        * @param aSuplSETCaps SetCapabilities
+        * @param aSuplLocationId Location Id
+        * @return Returns None
+        */
+		
+		IMPORT_C void SetSuplStart(COMASuplSETCapabilitiesVer2* aSuplSETCaps,
+						  		   COMASuplLocationIdVer2* aSuplLocationId,
+						  		   TBool aeCID);
+		        
+		
+   	public: 
+      	 
+         /**
+          * Setter method for Version 2 extension in Supl start
+          * @since S60 S60_5.2
+          * @param aVer2Extn,COMASuplVer2SuplStartExtn to be set
+          * @return None
+          */
+         IMPORT_C void SetVer2SuplStartExtn(COMASuplVer2SuplStartExtn* aVer2Extn);
+         
+         
+         /**
+          * Getter method for Version 2 extension in Supl start
+          * @since S60 S60_5.2
+          * @param aVer2Extn,COMASuplVer2SuplStartExtn returned
+          * @return None
+          */
+         IMPORT_C void GetVer2SuplStartExtn(COMASuplVer2SuplStartExtn*& aVer2Extn);
+         
+         /**
+          * Method to determine if SUPL Start extension is present in the message or not
+          */
+         IMPORT_C TBool IsVer2ExtnPresent();
+         
+         /**
+          * Cloning of SuplStart
+          * @since S60 S60_5.2
+          * @param aStart Base pointer
+          * @param aErrorCode error code
+          * @return Returns None
+          */
+         IMPORT_C void Clone(const COMASuplAsnMessageBase* aStart,TInt& aErrorCode);
+         
+   	protected: 
+      
+      void ConstructL();        
+      
+      COMASuplStartVer2(); 
+      
+	  
+    protected:    // Data
+    
+	/* SetCapabilities*/
+    COMASuplSETCapabilitiesVer2* iSETCapabilities2; 
+    
+    /* Location Id*/
+    COMASuplLocationIdVer2* iLocationId2;
+    
+    /*Extension for Supl start*/
+    COMASuplVer2SuplStartExtn* iVer2Extn;
+    
+    TBool iIsV2ExtnPresent;
+    };
+
+
+#endif //C_COMASuplStartVer2_H