applayerpluginsandutils/httpprotocolplugins/WspProtocolHandler/CWspCapabilityInfo.cpp
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerpluginsandutils/httpprotocolplugins/WspProtocolHandler/CWspCapabilityInfo.cpp	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,248 @@
+// Copyright (c) 2001-2009 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:
+//
+
+#include "CWspCapabilityInfo.h"
+
+#include <wsp/WspTypes.h>
+#include "CWspAliasAddresses.h"
+#include "CWspExtendedMethods.h"
+#include "CWspHeaderCodePages.h"
+#include "CWspUnknownCapabilities.h"
+
+const TUint32 KWspMethodMORDefault			= 1;
+const TUint32 KWspPushMORDefault			= 1;
+const TUint32 KWspClientSDUSizeDefault		= 1400;
+const TUint32 KWspServerSDUSizeDefault		= 1400;
+const TUint32 KWspClientMessageSizeDefault	= 1400;
+const TUint32 KWspServerMessageSizeDefault	= 1400;
+const TUint8  KWspProtocolOptionsDefault	= 0x00;
+
+
+CWspCapabilityInfo* CWspCapabilityInfo::NewL()
+	{
+	CWspCapabilityInfo* self = new (ELeave) CWspCapabilityInfo();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CWspCapabilityInfo::~CWspCapabilityInfo()
+	{
+	delete iAliasAddresses;
+	delete iExtendedMethods;
+	delete iHeaderCodePages;
+	delete iUnknownCapabilities;
+	}
+
+CWspCapabilityInfo::CWspCapabilityInfo()
+: CBase(), iMethodMOR(KWspMethodMORDefault),
+		   iPushMOR(KWspPushMORDefault),
+		   iProtocolOptions(KWspProtocolOptionsDefault),
+		   iClientSDUSize(KWspClientSDUSizeDefault),
+		   iServerSDUSize(KWspServerSDUSizeDefault),
+		   iClientMessageSize(KWspClientMessageSizeDefault),
+		   iServerMessageSize(KWspServerMessageSizeDefault)
+	{
+	}
+
+void CWspCapabilityInfo::ConstructL()
+	{
+	iAliasAddresses = CWspAliasAddresses::NewL();
+	iExtendedMethods = CWspExtendedMethods::NewL();
+	iHeaderCodePages = CWspHeaderCodePages::NewL();
+	iUnknownCapabilities = CWspUnknownCapabilities::NewL();
+	}
+
+/*
+ * Methods from MWspCapabilityViewer
+ */
+
+const MWspAliasAddresses& CWspCapabilityInfo::GetAliasAddresses() const
+	{
+	return *iAliasAddresses;
+	}
+
+const MWspExtendedMethods& CWspCapabilityInfo::GetExtendedMethods() const
+	{
+	return *iExtendedMethods;
+	}
+
+const MWspHeaderCodePages& CWspCapabilityInfo::GetHeaderCodePages() const
+	{
+	return *iHeaderCodePages;
+	}
+
+TUint8 CWspCapabilityInfo::GetMethodMOR() const
+	{
+	return iMethodMOR;
+	}
+
+TUint8 CWspCapabilityInfo::GetPushMOR() const
+	{
+	return iPushMOR;
+	}
+
+TUint8 CWspCapabilityInfo::GetProtocolOptions() const
+	{
+	return iProtocolOptions;
+	}
+
+TUint32 CWspCapabilityInfo::GetClientSDUSize() const
+	{
+	return iClientSDUSize;
+	}
+
+TUint32 CWspCapabilityInfo::GetServerSDUSize() const
+	{
+	return iServerSDUSize;
+	}
+
+TUint32 CWspCapabilityInfo::GetClientMessageSize() const
+	{
+	return iClientMessageSize;
+	}
+
+TUint32 CWspCapabilityInfo::GetServerMessageSize() const
+	{
+	return iServerMessageSize;
+	}
+
+const MWspUnknownCapabilities& CWspCapabilityInfo::GetUnknownCapabilities() const
+	{
+	return *iUnknownCapabilities;
+	}
+
+/*
+ * Methods from MWspCapabilitiesSetter
+ */
+
+void CWspCapabilityInfo::Reset(TWspCapability aCapability)
+	{
+	switch(aCapability)
+		{
+	case EAliasAddresses:
+		{
+		iAliasAddresses->Reset();
+		} break;
+	case EExtendedMethods:
+		{
+		iExtendedMethods->Reset();
+		} break;
+	case EHeaderCodePages:
+		{
+		iHeaderCodePages->Reset();
+		} break;
+	case EMethodMOR:
+		{
+		iMethodMOR = KWspMethodMORDefault;
+		} break;
+	case EPushMOR:
+		{
+		iPushMOR = KWspPushMORDefault;
+		} break;
+	case EProtocolOptions:
+		{
+		iProtocolOptions = KWspProtocolOptionsDefault;
+		} break;
+	case EClientSDUSize:
+		{
+		iClientSDUSize = KWspClientSDUSizeDefault;
+		} break;
+	case EServerSDUSize:
+		{
+		iServerSDUSize = KWspServerSDUSizeDefault;
+		} break;
+	case EClientMessageSize:
+		{
+		iClientMessageSize = KWspClientMessageSizeDefault;
+		} break;
+	case EServerMessageSize:
+		{
+		iServerMessageSize = KWspServerMessageSizeDefault;
+		} break;
+	case EUnknownCapabilities:
+		{
+		iUnknownCapabilities->Reset();
+		} break;
+	case EAllCapabilities:
+		{
+		// Recurse into this function using a different value of TWspCapability
+		for(TInt capability = 0; capability<EAllCapabilities; ++capability)
+			{
+			// Reset the given capability
+			Reset(STATIC_CAST(TWspCapability, capability));
+			}
+		} break;
+	default:
+		// Ignore any unknown capability
+		break;
+		}
+	}
+
+void CWspCapabilityInfo::AddAliasAddressL(TWspBearer aBearer, TUint16 aPort, const TDesC8& aAddress)
+	{
+	iAliasAddresses->AddAddressL(aBearer, aPort, aAddress);
+	}
+
+void CWspCapabilityInfo::AddExtendedMethodL(TUint8 aPDUType, const TDesC8& aMethodName)
+	{
+	iExtendedMethods->AddExtendedMethodL(aPDUType, aMethodName);
+	}
+
+void CWspCapabilityInfo::AddHeaderCodePageL(TUint8 aPageCode, const TDesC8& aPageName)
+	{
+	iHeaderCodePages->AddHeaderCodePageL(aPageCode, aPageName);
+	}
+
+void CWspCapabilityInfo::SetMethodMOR(TUint8 aMOR)
+	{
+	iMethodMOR = aMOR;
+	}
+
+void CWspCapabilityInfo::SetPushMOR(TUint8 aMOR)
+	{
+	iPushMOR = aMOR;
+	}
+
+void CWspCapabilityInfo::SetProtocolOptions(TUint8 aProtocolOptions)
+	{
+	iProtocolOptions = aProtocolOptions;
+	}
+
+void CWspCapabilityInfo::SetClientSDUSize(TUint32 aSize)
+	{
+	iClientSDUSize = aSize;
+	}
+
+void CWspCapabilityInfo::SetServerSDUSize(TUint32 aSize)
+	{
+	iServerSDUSize = aSize;
+	}
+
+void CWspCapabilityInfo::SetClientMessageSize(TUint32 aSize)
+	{
+	iClientMessageSize = aSize;
+	}
+
+void CWspCapabilityInfo::SetServerMessageSize(TUint32 aSize)
+	{
+	iServerMessageSize = aSize;
+	}
+
+void CWspCapabilityInfo::AddUnknownCapabilityL(const TDesC8& aIdentifier, const TDesC8& aValue)
+	{
+	iUnknownCapabilities->AddUnknownCapabilityL(aIdentifier, aValue);
+	}