supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplresponse.cpp
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplresponse.cpp	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,202 @@
+/*
+* 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 response message
+*
+*/
+
+
+// INCLUDE FILES
+
+#include <e32def.h>
+
+#include "epos_comasuplresponse.h"
+#include "epos_comasuplsessionid.h"
+#include  "lbs/epos_eomasuplposerrors.h"
+
+
+// ============================ MEMBER FUNCTIONS of COMASuplSessionID===============================
+    
+// -----------------------------------------------------------------------------
+// COMASuplResponse::NewL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C COMASuplResponse* COMASuplResponse::NewL()
+    {
+    COMASuplResponse* self = new( ELeave ) COMASuplResponse;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+// -----------------------------------------------------------------------------
+// COMASuplResponse::~COMASuplResponse() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//    
+EXPORT_C COMASuplResponse::~COMASuplResponse()
+    {
+    
+	if(iSLPAddress)
+		{
+		delete iSLPAddress;
+		iSLPAddress = NULL;
+		}    
+	}
+ 
+// -----------------------------------------------------------------------------
+// COMASuplResponse::SuplResponse() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C TOMASuplPosMethod COMASuplResponse::SuplResponse()const
+{
+	return iPosMethod;
+}						  			   
+
+// -----------------------------------------------------------------------------
+// COMASuplResponse::SetSuplResponse() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplResponse::SetSuplResponse(TOMASuplPosMethod aPosMethod)
+{
+	iPosMethod = aPosMethod;
+	iPosMethodSet = ETrue;
+}						  			   
+
+// -----------------------------------------------------------------------------
+// COMASuplResponse::SLPAddress() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C TInt COMASuplResponse::SLPAddress(COMASuplSLPAddress*& aAddress)const
+{
+	if(iOptionalMask & (1<<(1)))
+		{
+		aAddress = iSLPAddress;
+		return KErrNone;
+		}
+	else
+		{
+		return KErrOMASuplParamNotSet;
+		}
+}						  			   
+
+// -----------------------------------------------------------------------------
+// COMASuplResponse::SetSLPAddress() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplResponse::SetSLPAddress(COMASuplSLPAddress* aAddress)
+{	
+	delete iSLPAddress;
+	iSLPAddress = NULL;
+	iSLPAddress = aAddress;
+	if(iSLPAddress)
+		{
+		iOptionalMask |= LEFTSHIFT(1);		
+		}	
+}	
+
+// -----------------------------------------------------------------------------
+// COMASuplResponse::CloneL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplResponse::Clone(const COMASuplAsnMessageBase* aResponse,TInt& aErrorCode)
+{
+	TRAP(aErrorCode, CloneBaseL(aResponse,aErrorCode));
+	if(aErrorCode)
+	 	return;
+	COMASuplResponse* response = (COMASuplResponse*)aResponse;
+	iPosMethod = response->iPosMethod;
+	iOptionalMask = response->iOptionalMask;
+	
+	if(iOptionalMask & (1<<(1)))
+		{
+		TRAP(aErrorCode,CloneSLPAddressL(response));
+		}
+}						  			   
+   
+// -----------------------------------------------------------------------------
+// COMASuplResponse::COMASuplResponse() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C COMASuplResponse::COMASuplResponse()
+	{
+		
+	}
+// -----------------------------------------------------------------------------
+// COMASuplResponse::ConstructL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplResponse::ConstructL()
+    {
+    SetMessageType(COMASuplAsnMessageBase::ESUPL_RESPONSE);
+    iPosMethodSet = EFalse;
+    iOptionalMask = 0;
+    }
+// -----------------------------------------------------------------------------
+// COMASuplResponse::CloneSLPAddress() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+// 	
+void COMASuplResponse::CloneSLPAddressL(const COMASuplResponse* aSuplResponse)
+	{
+	TBuf8<KIPv6Address>  lIPvAddress;
+	
+	COMASuplSLPAddress* cloneSLPAddress =  NULL;
+	
+	delete iSLPAddress;
+	iSLPAddress = NULL;
+	iSLPAddress = COMASuplSLPAddress::NewL();
+	
+	aSuplResponse->SLPAddress(cloneSLPAddress);
+	COMASuplSLPAddress::TSuplSLPAddressType lChoice = cloneSLPAddress->SLPAddressType();
+
+	switch(lChoice)
+	    {
+	    case COMASuplSLPAddress::EIPv4Address: 
+	        {
+	        cloneSLPAddress->IPvAddress(lIPvAddress);
+	        iSLPAddress->SetIPv4Address(lIPvAddress);
+	        break;				
+	        }
+	    case COMASuplSLPAddress::EIPv6Address: 
+	        {
+	        cloneSLPAddress->IPvAddress(lIPvAddress);
+
+	        iSLPAddress->SetIPv6Address(lIPvAddress);
+	        break;	
+	        }
+	    case COMASuplSLPAddress::EFqdn: 	
+	        {
+	        HBufC8* cloneFqdn = NULL;
+	        cloneSLPAddress->Fqdn(cloneFqdn);
+
+	        HBufC8* fqdn = HBufC8::NewL(cloneFqdn->Length());
+
+	        *fqdn = *cloneFqdn;
+	        iSLPAddress->SetFqdn(fqdn);
+
+	        break;	
+	        }
+	    }
+	}
+
+