supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplinitver2.cpp
changeset 0 667063e416a2
child 39 3efc7a0e8755
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplinitver2.cpp	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,836 @@
+/*
+* 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:  Implementation file for supl 2.0 init message
+*
+*/
+
+// INCLUDE FILES
+
+#include <e32def.h>
+#include "epos_comasuplinitver2.h"
+#include "epos_suplconstants.h"
+#include "lbs/epos_eomasuplposerrors.h"
+#include "epos_comasuplnotificationver2.h"
+#include "epos_comasuplsessionid.h"
+
+// -----------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::NewL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C COMASuplVer2SuplInitExtn* COMASuplVer2SuplInitExtn::NewL()
+    {
+    COMASuplVer2SuplInitExtn* self = new(ELeave) COMASuplVer2SuplInitExtn;
+    return self;
+    }
+// -----------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::~COMASuplVer2SuplInitExtn() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C  COMASuplVer2SuplInitExtn::~COMASuplVer2SuplInitExtn()
+    {
+    if(iSLPAddress)
+        {
+        delete iSLPAddress;
+        iSLPAddress = NULL;
+        }
+    }
+    
+// -----------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::COMASuplVer2SuplInitExtn() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+COMASuplVer2SuplInitExtn::COMASuplVer2SuplInitExtn()
+    {
+    iOptionalMask = 0;
+    }
+// -----------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::CloneL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void COMASuplVer2SuplInitExtn::CloneL(COMASuplVer2SuplInitExtn* aCloneV2Extn)
+    {    
+    if(aCloneV2Extn)
+        {
+        iOptionalMask = aCloneV2Extn->iOptionalMask  ;	
+        aCloneV2Extn->GetHistoricRep(iHistoricReporting);
+        aCloneV2Extn->GetMinMajorVer(iMinMajorVersion);
+        aCloneV2Extn->GetNotificationMode(iNotificationMode);
+        aCloneV2Extn->GetProtLevel(iProtectionLevel);
+        aCloneV2Extn->GetSupNwInfo(iSupportedNetworkInformation);
+        aCloneV2Extn->GetHSLPAddress(iSLPAddress);
+        aCloneV2Extn->GetTrigType(iTriggerType);
+        CloneSLPAddressL(aCloneV2Extn);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::CloneSLPAddress() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//  
+void COMASuplVer2SuplInitExtn::CloneSLPAddressL(COMASuplVer2SuplInitExtn* aCloneV2Extn)
+    {
+    TBuf8<KIPv6Address>  lIPvAddress;
+
+    COMASuplSLPAddress* cloneSLPAddress =  NULL;
+
+
+    if(aCloneV2Extn->GetHSLPAddress(cloneSLPAddress) == KErrNone)
+        {
+        delete iSLPAddress;
+        iSLPAddress = NULL;
+        iSLPAddress = COMASuplSLPAddress::NewL();
+
+        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;  
+                }
+            }
+        }
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplTimeWindow::TOMASuplTimeWindow() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TOMASuplTimeWindow::TOMASuplTimeWindow()
+    {
+    iIsTimeWindowSet = EFalse;
+    iStartTime = 0;
+    iStopTime = 0;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplTimeWindow::GetTimeWindow() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt TOMASuplTimeWindow::GetTimeWindow(TInt32& aStartTime, TInt32& aStopTime)
+    {
+    if(iIsTimeWindowSet)
+        {
+        aStartTime = iStartTime;
+        aStopTime = iStopTime;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+ 
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplTimeWindow::SetTimeWindow() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplTimeWindow::SetTimeWindow(TInt32 aStartTime,TInt32 aStopTime)
+    {
+    iIsTimeWindowSet = ETrue;
+    iStartTime = aStartTime;
+    iStopTime = aStopTime;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplReportingCriteria::TOMASuplReportingCriteria() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TOMASuplReportingCriteria::TOMASuplReportingCriteria()
+    {
+    iOptionalMask = 0;
+    iMaxNumberofReports = -1;
+    iMinTimeInterval = -1;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplReportingCriteria::GetTimeWindow(TOMASuplTimeWindow& aTimeWindow) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt TOMASuplReportingCriteria::GetTimeWindow(TOMASuplTimeWindow& aTimeWindow)
+    {
+    if(iOptionalMask & (1<<2))
+        {
+        aTimeWindow  = iTimeWindow;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplReportingCriteria::GetNumOfreports() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt32 TOMASuplReportingCriteria::GetNumOfreports()
+    {
+    if(iOptionalMask & (1<<1))
+          {
+          return iMaxNumberofReports;
+          }
+      return KErrOMASuplParamNotSet;
+
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplReportingCriteria::GrtMinTimeInt() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt32 TOMASuplReportingCriteria::GrtMinTimeInt()
+    {
+    if(iOptionalMask & (1))
+            {
+            return iMinTimeInterval;
+            }
+        return KErrOMASuplParamNotSet;
+
+
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplReportingCriteria::SetTimeWindow(TOMASuplTimeWindow aTimeWindow) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplReportingCriteria::SetTimeWindow(TOMASuplTimeWindow aTimeWindow)
+    {
+    iOptionalMask |= (1<<2);
+    iTimeWindow = aTimeWindow;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplReportingCriteria::SetNumOfreports(TInt32 aMaxRepNum) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplReportingCriteria::SetNumOfreports(TInt32 aMaxRepNum)
+    {
+    iOptionalMask |= (1<<1);
+    iMaxNumberofReports = aMaxRepNum;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplReportingCriteria::SetMinTimeInt(TInt32 aMinIntTime) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplReportingCriteria::SetMinTimeInt(TInt32 aMinIntTime)
+    {
+    iOptionalMask |= (1);
+    iMinTimeInterval = aMinIntTime;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplHistoricReporting::TOMASuplHistoricReporting() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TOMASuplHistoricReporting::TOMASuplHistoricReporting()
+    {
+    iOptionalMask = 0;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplHistoricReporting::SetAllowedRepType(TOMASuplAllowedReportingType aAllowedRepType) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplHistoricReporting::SetAllowedRepType(TOMASuplAllowedReportingType aAllowedRepType)
+    {
+    iOptionalMask |= (1<<1);
+    iAllowedReportingType = aAllowedRepType;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplHistoricReporting::SetRepCriteria(TOMASuplReportingCriteria aRepCrit) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplHistoricReporting::SetRepCriteria(TOMASuplReportingCriteria aRepCrit)
+    {
+    iOptionalMask |= (1);
+    iReportingCriteria = aRepCrit;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplHistoricReporting::GetAllowedRepType(TOMASuplAllowedReportingType& aAllowedRepType) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C TInt TOMASuplHistoricReporting::GetAllowedRepType(TOMASuplAllowedReportingType& aAllowedRepType)
+    {
+    if(iOptionalMask & (1<<1))
+        {
+        aAllowedRepType = iAllowedReportingType;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+    
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplHistoricReporting::GetRepCriteria(TOMASuplReportingCriteria& aRepCrit) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C TInt TOMASuplHistoricReporting::GetRepCriteria(TOMASuplReportingCriteria& aRepCrit)
+    {
+    if(iOptionalMask & (1))
+           {
+           aRepCrit = iReportingCriteria;
+           return KErrNone;
+           }
+       return KErrOMASuplParamNotSet;
+
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplBasicProtectionParams::GetKeyIdentifier(TDes8& aKeyId) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplBasicProtectionParams::GetKeyIdentifier(TDes8& aKeyId)
+    {
+    if(aKeyId.MaxLength() >= iKeyIdentifier.Length())
+        aKeyId = iKeyIdentifier;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplBasicProtectionParams::GetReplayCounter() 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C TInt32 TOMASuplBasicProtectionParams::GetReplayCounter()
+    {
+    return iBasicReplayCounter;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplBasicProtectionParams::GetBasicMac(TDes8& aBasicMac) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplBasicProtectionParams::GetBasicMac(TDes8& aBasicMac)
+    {
+    if(aBasicMac.MaxLength() >= iBasicMAC.Length())
+        aBasicMac = iBasicMAC;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplBasicProtectionParams::SetKeyIdentifier(TDes8& aKeyId) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplBasicProtectionParams::SetKeyIdentifier(TDes8& aKeyId)
+    {
+    if(iKeyIdentifier.MaxLength() >= aKeyId.Length())
+        iKeyIdentifier = aKeyId;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplBasicProtectionParams::SetReplayCounter(TInt32 aCounter) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplBasicProtectionParams::SetReplayCounter(TInt32 aCounter)
+    {
+    iBasicReplayCounter = aCounter;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplBasicProtectionParams::SetBasicMac(TDes8& aBasicMac) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C void TOMASuplBasicProtectionParams::SetBasicMac(TDes8& aBasicMac)
+    {
+    if(iBasicMAC.MaxLength() >= aBasicMac.Length())
+        iBasicMAC = aBasicMac;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplProtectionLevel::GetProtLevel(TOMASuplProtLevelType& aProtLevel) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C TInt TOMASuplProtectionLevel::GetProtLevel(TOMASuplProtLevelType& aProtLevel)
+    {
+    if(iOptionalMask & (1<<1))
+        {
+        aProtLevel = iProtlevel;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+    }
+// -----------------------------------------------------------------------------------------
+// TOMASuplProtectionLevel::GetProtParams(TOMASuplBasicProtectionParams& aBasicProtParams) 
+// (other items were commented in a header).
+// ------------------------------------------------------------------------------------------
+//
+EXPORT_C TInt TOMASuplProtectionLevel::GetProtParams(TOMASuplBasicProtectionParams& aBasicProtParams)
+    {
+    if(iOptionalMask & (1<<1))
+           {
+           aBasicProtParams = iBasicProtectionParams;
+           return KErrNone;
+           }
+       return KErrOMASuplParamNotSet;
+
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplProtectionLevel::TOMASuplProtectionLevel() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//  
+EXPORT_C TOMASuplProtectionLevel::TOMASuplProtectionLevel()
+    {
+    iProtlevel = ETOMASuplProtLevelTypeUnknown;
+    iOptionalMask = 0;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplProtectionLevel::SetProtLevel(TOMASuplProtLevelType aProtLevel) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+// 
+EXPORT_C void TOMASuplProtectionLevel::SetProtLevel(TOMASuplProtLevelType aProtLevel)
+    {
+    iOptionalMask |= (1<<1);
+    iProtlevel = aProtLevel;
+    }
+// -----------------------------------------------------------------------------
+// TOMASuplProtectionLevel::SetProtParams(TOMASuplBasicProtectionParams aBasicProtParams) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+// 
+EXPORT_C void TOMASuplProtectionLevel::SetProtParams(TOMASuplBasicProtectionParams aBasicProtParams)
+    {
+    iOptionalMask |= 1;
+    iBasicProtectionParams = aBasicProtParams;
+    }
+
+// -----------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::GetNotificationMode(TOMASuplNotificationMode& aMode) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+// 
+EXPORT_C TInt COMASuplVer2SuplInitExtn::GetNotificationMode(TOMASuplNotificationMode& aMode)
+    {
+    if(iOptionalMask & (1<<7))
+        {
+        aMode = iNotificationMode;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::GetSupNwInfo(TOMASuplSuppNetworkInformation& aSupportedNetworkInformation) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+// 
+EXPORT_C TInt COMASuplVer2SuplInitExtn::GetSupNwInfo(TOMASuplSuppNetworkInformation& aSupportedNetworkInformation)
+    {
+    if(iOptionalMask & (1<<6))
+        {
+        aSupportedNetworkInformation = iSupportedNetworkInformation;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::GetTrigType(COMASuplTriggeredStart::TOMASuplTrigType& aTrigType) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+// 
+EXPORT_C TInt COMASuplVer2SuplInitExtn::GetTrigType(COMASuplTriggeredStart::TOMASuplTrigType& aTrigType)
+    {
+    if(iOptionalMask & (1<<5))
+        {
+        aTrigType = iTriggerType;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::GetHSLPAddress(COMASuplSLPAddress*& aSLPAddress) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+// 
+EXPORT_C TInt COMASuplVer2SuplInitExtn::GetHSLPAddress(COMASuplSLPAddress*& aSLPAddress)
+    {
+    if(iOptionalMask & (1<<4))
+        {
+        aSLPAddress = iSLPAddress;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::GetHistoricRep(TOMASuplHistoricReporting& aHistoricReporting) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C TInt COMASuplVer2SuplInitExtn::GetHistoricRep(TOMASuplHistoricReporting& aHistoricReporting)
+    {
+    if(iOptionalMask & (1<<3))
+        {
+        aHistoricReporting = iHistoricReporting;
+        return KErrNone;
+        }
+    return KErrOMASuplParamNotSet;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::GetProtLevel(TOMASuplProtectionLevel& aProtectionLevel) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C TInt COMASuplVer2SuplInitExtn::GetProtLevel(TOMASuplProtectionLevel& aProtectionLevel)
+    {
+    if(iOptionalMask & (1<<2))
+         {
+         aProtectionLevel = iProtectionLevel;
+         return KErrNone;
+         }
+     return KErrOMASuplParamNotSet;
+
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::GetMinMajorVer(TInt& aVer) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C TInt COMASuplVer2SuplInitExtn::GetMinMajorVer(TInt& aVer)
+    {
+    if(iOptionalMask & (1))
+         {
+         iMinMajorVersion = aVer;
+         return KErrNone;
+         }
+     return KErrOMASuplParamNotSet;
+
+
+    }
+
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::SetNotificationMode(TOMASuplNotificationMode aMode) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplVer2SuplInitExtn::SetNotificationMode(TOMASuplNotificationMode aMode)
+    {
+    iOptionalMask |= (1<<7);
+    iNotificationMode = aMode;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::SetSupNwInfo(TOMASuplSuppNetworkInformation aSupportedNetworkInformation) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplVer2SuplInitExtn::SetSupNwInfo(TOMASuplSuppNetworkInformation aSupportedNetworkInformation)
+    {
+    iOptionalMask |= (1<<6);
+    iSupportedNetworkInformation = aSupportedNetworkInformation;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::SetTrigType(COMASuplTriggeredStart::TOMASuplTrigType aTrigType) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplVer2SuplInitExtn::SetTrigType(COMASuplTriggeredStart::TOMASuplTrigType aTrigType)
+    {
+    iOptionalMask |= (1<<5);
+    iTriggerType = aTrigType;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::SetHSLPAddress(COMASuplSLPAddress* aSLPAddress) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplVer2SuplInitExtn::SetHSLPAddress(COMASuplSLPAddress* aSLPAddress)
+    {
+    if(iSLPAddress)
+        {
+        delete iSLPAddress;
+        iSLPAddress = NULL;
+        }
+    if(aSLPAddress)
+        {
+        iOptionalMask |= (1<<4);
+        iSLPAddress = aSLPAddress;
+        }
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::SetHistoricRep(TOMASuplHistoricReporting aHistoricReporting) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplVer2SuplInitExtn::SetHistoricRep(TOMASuplHistoricReporting aHistoricReporting)
+    {
+    iOptionalMask |= (1<<3);
+    iHistoricReporting = aHistoricReporting;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::SetProtLevel(TOMASuplProtectionLevel aProtectionLevel) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplVer2SuplInitExtn::SetProtLevel(TOMASuplProtectionLevel aProtectionLevel)
+    {
+    iOptionalMask |= (1<<2);
+    iProtectionLevel = aProtectionLevel;
+    }
+// ----------------------------------------------------------------------------------------------------
+// COMASuplVer2SuplInitExtn::SetMinMajorVer(TInt aVer) 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplVer2SuplInitExtn::SetMinMajorVer(TInt aVer)
+    {
+    iOptionalMask |= (1);
+    iMinMajorVersion = aVer;
+    }
+
+
+// ============================ MEMBER FUNCTIONS of COMASuplInitVer2===============================
+
+// -----------------------------------------------------------------------------
+// COMASuplInit::NewL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C COMASuplInitVer2* COMASuplInitVer2::NewL()
+    {
+    COMASuplInitVer2* self = new( ELeave ) COMASuplInitVer2;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+// -----------------------------------------------------------------------------
+// COMASuplInitVer2::~COMASuplInitVer2() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//    
+EXPORT_C COMASuplInitVer2::~COMASuplInitVer2()
+    {
+    if(iNotificationV2)
+        {
+        delete iNotificationV2;
+        iNotificationV2 = NULL;
+        }
+    if(iVer2InitExtn)
+        {
+        delete iVer2InitExtn;
+        iVer2InitExtn = NULL;
+        }
+    }
+    
+
+
+// -----------------------------------------------------------------------------
+// COMASuplResponse::CloneL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//   			
+EXPORT_C void COMASuplInitVer2::Clone(const COMASuplAsnMessageBase* aInit,TInt& aErrorCode)
+{
+	TRAP(aErrorCode, CloneBaseL(aInit,aErrorCode))
+	if(aErrorCode)
+	 	return;
+	COMASuplInit::Clone(aInit,aErrorCode);
+	COMASuplInitVer2* suplInit = (COMASuplInitVer2*)aInit;
+	iOptionalMask = suplInit->iOptionalMask;
+
+	if(suplInit->iOptionalMask & (1<<(1)))
+		{
+		TRAP(aErrorCode,CloneNotificationL(suplInit))
+		if(aErrorCode)
+			{
+			return;
+			}
+		}
+	if(suplInit->iOptionalMask & (1<<(3)))
+	    {
+	    TRAP(aErrorCode,CloneInitV2ExtnL(suplInit))
+	    if(aErrorCode)
+	        {
+	        return;
+	        }
+	    }
+}	
+// -----------------------------------------------------------------------------
+// COMASuplInitVer2::COMASuplInitVer2() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C COMASuplInitVer2::COMASuplInitVer2()
+	{
+		
+	}
+// -----------------------------------------------------------------------------
+// COMASuplInitVer2::ConstructL() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplInitVer2::ConstructL()
+    {
+    COMASuplInit::ConstructL();
+    }
+// -----------------------------------------------------------------------------
+// COMASuplInit::CloneNotification() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//  
+void COMASuplInitVer2::CloneNotificationV2L(const COMASuplInitVer2* aSuplInit)
+    {
+    TInt error = KErrNone;
+    
+    delete iNotificationV2;
+    iNotificationV2 = NULL;
+    iNotificationV2 = COMASuplNotificationVer2::NewL();
+    
+    COMASuplNotificationVer2::TOMASuplEncodingType encodeType;
+    
+    COMASuplNotificationVer2* cloneNotification = NULL;
+    aSuplInit->GetVer2Notification(cloneNotification);
+    
+    
+    COMASuplNotification::TOMASuplNotificationType notifyType = cloneNotification->SuplNotification();
+    iNotificationV2->SetSuplNotification(notifyType);
+    
+    error = cloneNotification->EncodingType(encodeType);
+    if(!error)
+        {
+        iNotificationV2->SetEncodingType(encodeType);  
+        }
+    
+    COMASuplNotification::TOMASuplFormatIndicator formatIndicator;
+    HBufC8* cloneName = NULL;
+    error = cloneNotification->ClientName(cloneName,formatIndicator);
+    if(!error)
+        {
+        HBufC8* name = HBufC8::NewL(cloneName->Length());
+        *name = *cloneName;
+        iNotificationV2->SetClientName(name,formatIndicator);
+        }
+        
+    HBufC8* cloneRequestor = NULL;
+    error = cloneNotification->RequestorId(cloneRequestor,formatIndicator);
+    if(!error)
+        {
+        HBufC8* requestor = HBufC8::NewL(cloneRequestor->Length());
+        *requestor = *cloneRequestor;
+        iNotificationV2->SetRequestorId(requestor,formatIndicator);
+        }
+
+    }
+// -----------------------------------------------------------------------------
+// COMASuplInitVer2::CloneNotification() 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+// 
+EXPORT_C void COMASuplInitVer2::CloneInitV2ExtnL(COMASuplInitVer2* aSuplInit)
+    {
+    if(iVer2InitExtn)
+        {
+        delete iVer2InitExtn;
+        iVer2InitExtn = NULL;
+        }
+        
+    iVer2InitExtn = COMASuplVer2SuplInitExtn::NewL();
+    COMASuplVer2SuplInitExtn* cloneV2SuplInitExtn = NULL;
+    aSuplInit->GetVer2SuplInitExtn(cloneV2SuplInitExtn);
+    iVer2InitExtn->CloneL(cloneV2SuplInitExtn);
+    
+    }
+// -----------------------------------------------------------------------------
+// COMASuplInitVer2::SetVer2SuplInitExtn(COMASuplVer2SuplInitExtn* aVer2Extn) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplInitVer2::SetVer2SuplInitExtn(COMASuplVer2SuplInitExtn* aVer2Extn)
+    {
+    if(iVer2InitExtn)
+        {
+        delete iVer2InitExtn;
+        iVer2InitExtn = NULL;
+        }
+    iVer2InitExtn = aVer2Extn;
+    if(iVer2InitExtn)
+           iOptionalMask |= LEFTSHIFT(3);
+    }
+
+// -----------------------------------------------------------------------------
+// COMASuplInitVer2::GetVer2SuplInitExtn(COMASuplVer2SuplInitExtn*& aVer2Extn) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt COMASuplInitVer2::GetVer2SuplInitExtn(COMASuplVer2SuplInitExtn*& aVer2Extn)
+    {
+    if(iOptionalMask & (1<<(3)))
+        {
+        aVer2Extn    = iVer2InitExtn; 
+        return KErrNone;
+        }
+    else
+        {
+        return KErrOMASuplParamNotSet;
+        }
+
+    }
+// -----------------------------------------------------------------------------
+// COMASuplInitVer2::SetVer2Notification(COMASuplNotificationVer2* aNotificationV2) 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+EXPORT_C void COMASuplInitVer2::SetVer2Notification(COMASuplNotificationVer2* aNotificationV2)
+    {
+    if(iNotificationV2)
+        {
+        delete iNotificationV2;
+        iNotificationV2 = NULL;
+        }
+    iNotificationV2 = aNotificationV2;
+    if(iNotificationV2)
+           iOptionalMask |= LEFTSHIFT(4);
+ 
+    }
+
+// -----------------------------------------------------------------------------
+// COMASuplInitVer2::GetVer2Notification(COMASuplNotificationVer2*& aNotificationV2)const 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt COMASuplInitVer2::GetVer2Notification(COMASuplNotificationVer2*& aNotificationV2)const
+    {
+    if(iOptionalMask & (1<<(4)))
+        {
+        aNotificationV2    = iNotificationV2; 
+        return KErrNone;
+        }
+    else
+        {
+        return KErrOMASuplParamNotSet;
+        }
+    }