supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplposinit.cpp
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplposinit.cpp	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,316 @@
+/*
+* 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 Pos init message
+*
+*/
+
+// INCLUDE FILES
+
+#include <e32def.h>
+
+#include "epos_comasuplposinit.h"
+#include "lbs/epos_comasuplreqasstdata.h"
+#include "lbs/epos_comasuplposition.h"
+#include "lbs/epos_comasuplvelocity.h"
+#include "lbs/epos_comasuplsetcapabilities.h"
+#include "lbs/epos_comasuplpospayload.h"
+#include "epos_comasuplpos.h"
+#include "epos_comasuplsessionid.h"
+#include "epos_comasupllocationid.h"
+#include "lbs/epos_eomasuplposerrors.h"
+
+// ============================ MEMBER FUNCTIONS of COMASuplPosInit===============================
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::NewL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C COMASuplPosInit* COMASuplPosInit::NewL()
+    {
+    COMASuplPosInit* self = new( ELeave ) COMASuplPosInit;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::~COMASuplPosInit() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//    
+EXPORT_C COMASuplPosInit::~COMASuplPosInit()
+    {
+	if(iReqAsstData)
+		{
+		delete iReqAsstData;
+		iReqAsstData = NULL;
+		}
+	if(iPosPayload)
+		{
+		delete iPosPayload;
+		iPosPayload = NULL;
+		}
+	if(iVelocity)
+		{
+		delete iVelocity;
+		iVelocity = NULL;
+		}
+	if(iPosition)
+		{
+		delete iPosition;
+		iPosition = NULL;
+		}
+	}
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::SetSuplPosInit() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplPosInit::SetSuplPosInit(COMASuplSETCapabilities* aSuplSETCaps,
+						  			         COMASuplLocationId* aSuplLocationId,
+						  			         TBool aeCID)
+{	
+	delete iLocationId;
+	iLocationId = NULL;
+	iSETCapabilities = aSuplSETCaps;
+	iLocationId = aSuplLocationId;
+	ieCID  = aeCID;
+}	
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::RequestAssistanceData() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C TInt COMASuplPosInit::RequestAssistanceData(COMASuplReqAsstData*& aReqAsstData)const
+{
+	if(iOptionalMask & (1<<(0)))
+		{
+		aReqAsstData = iReqAsstData;		
+		return KErrNone;
+		}
+	else
+		{
+		return KErrOMASuplParamNotSet;
+		}
+}						  			   
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::SetRequestAssistanceData() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplPosInit::SetRequestAssistanceData(COMASuplReqAsstData* aReqAsstData)
+{	
+	delete iReqAsstData;
+	iReqAsstData = NULL;
+	
+	iReqAsstData = aReqAsstData;
+	if(iReqAsstData)
+		iOptionalMask |= LEFTSHIFT(0);
+}	
+
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::Position()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C TInt COMASuplPosInit::Position(COMASuplPosition*& aPosition)const
+{
+	if(iOptionalMask & (1<<(1)))
+		{
+		aPosition = iPosition;		
+		return KErrNone;
+		}
+	else
+		{
+		return KErrOMASuplParamNotSet;
+		}
+}						  			   
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::SetPosition() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplPosInit::SetPosition(COMASuplPosition* aPosition)
+{	
+	delete iPosition;
+	iPosition = NULL;
+	iPosition = aPosition;
+	if(iPosition)
+		iOptionalMask |= LEFTSHIFT(1);
+}	
+
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::Ver()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C TInt COMASuplPosInit::Ver(TDes8& aVer)const
+{
+	if(iOptionalMask & (1<<(2)))
+		{
+		aVer.Copy(iVer);		
+		return KErrNone;
+		}
+	else
+		{
+		return KErrOMASuplParamNotSet;
+		}
+}						  			   
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::SetVer() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplPosInit::SetVer(TDesC8& aVer)
+{
+	iVer.Copy(aVer);
+	iOptionalMask |= LEFTSHIFT(2);
+}  
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::SuplPosPayload()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   
+	
+EXPORT_C TInt COMASuplPosInit::SuplPosPayload(COMASuplPosPayload*& aPosPayload)const
+{
+	if(iOptionalMask & (1<<(3)))
+		{
+		aPosPayload = iPosPayload;		
+		return KErrNone;
+		}
+	else
+		{
+		return KErrOMASuplParamNotSet;
+		}
+}						  			   
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::SetSuplPosPayload() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   	
+EXPORT_C void COMASuplPosInit::SetSuplPosPayload(COMASuplPosPayload* aPosPayload)
+{	
+	delete iPosPayload;
+	iPosPayload = NULL;
+	iPosPayload = aPosPayload;
+	if(iPosPayload)
+		{
+		iOptionalMask |= LEFTSHIFT(3);	
+		}		
+}	  
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::SuplPosPayload()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   
+	
+EXPORT_C TInt COMASuplPosInit::Velocity(COMASuplVelocity*& aVelocity)const
+{
+	if(iOptionalMask & (1<<(4)))
+		{
+		aVelocity = iVelocity;		
+		return KErrNone;
+		}
+	else
+		{
+		return KErrOMASuplParamNotSet;
+		}
+}						  			   
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::SetSuplPosPayload() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   	
+EXPORT_C void COMASuplPosInit::SetVelocity(COMASuplVelocity* aVelocity)
+{	
+	delete iVelocity;
+	iVelocity = NULL;
+	iVelocity = aVelocity;
+	if(iVelocity)
+		{
+		iOptionalMask |= LEFTSHIFT(4);	
+		}		
+}	  
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::COMASuplPosInit() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C COMASuplPosInit::COMASuplPosInit()
+	{
+	ieCID = EFalse;	
+	}
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::ConstructL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplPosInit::ConstructL()
+    {
+    iOptionalMask = 0;
+    SetMessageType(COMASuplAsnMessageBase::ESUPL_POSINIT);
+    }
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::IntializeECellId() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplPosInit::SetECellId(TOMASuplECellInfo& aECId)
+	{
+		iMmCellInfo = aECId;
+		ieCID = ETrue ;
+	}
+
+// -----------------------------------------------------------------------------
+// COMASuplPosInit::CloneL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplPosInit::Clone(const COMASuplAsnMessageBase* aPosInit,TInt& aErrorCode)
+    {
+    TRAP(aErrorCode, CloneBaseL(aPosInit,aErrorCode));
+    COMASuplPosInit* posInit = (COMASuplPosInit*)aPosInit;
+    if(posInit->iSETCapabilities && posInit->iLocationId)
+        TRAP(aErrorCode,SetSuplPosInit(static_cast<COMASuplSETCapabilities*>(posInit->iSETCapabilities->CloneL()),posInit->iLocationId->CloneL(),posInit->ieCID));
+    if(posInit->iPosition)
+        TRAP(aErrorCode,SetPosition(static_cast<COMASuplPosition*>(posInit->iPosition->CloneL())));
+    if(posInit->iReqAsstData)
+        TRAP(aErrorCode,SetRequestAssistanceData(static_cast<COMASuplReqAsstData*>(posInit->iReqAsstData->CloneL())));
+    
+    TBuf8<KVer> ver;
+    ver.Append(posInit->iVer);
+    SetVer(ver);
+    if(posInit->iPosPayload)
+        TRAP(aErrorCode,SetSuplPosPayload(static_cast<COMASuplPosPayload*>(posInit->iPosPayload->CloneL())));
+    if(posInit->iVelocity)
+        TRAP(aErrorCode,SetVelocity(static_cast<COMASuplVelocity*>(posInit->iVelocity->CloneL())));
+    if(posInit->ieCID)
+        SetECellId(posInit->iMmCellInfo);
+    }		
+