wapstack/wapmessageapi/sws/CLWSPPduHandler.h
branchRCL_3
changeset 18 50bae5c5c85f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wapstack/wapmessageapi/sws/CLWSPPduHandler.h	Tue Apr 20 17:00:49 2010 +0100
@@ -0,0 +1,141 @@
+// Copyright (c) 2003-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:
+//
+
+#ifndef __CLWSPPDUHANDLER_H__
+#define __CLWSPPDUHANDLER_H__
+#include <e32std.h>
+#include <wapmessage.h>
+
+
+/** 
+The connectionless WSP PDU type definition.
+@internalComponent
+*/
+enum TWSPPduType
+	{
+	/** the Reply PDU type assignment 
+	*/
+	EReply			=0x04,
+	/** the Push PDU type assignment 
+	*/
+	EPush			=0x06,
+	/** the Get PDU type assignment 
+	*/
+	EGet			=0x40,
+	/** the GetOption PDU type assignment 
+	*/
+	EGetOptions		=0x41,
+	/** the Gethead PDU type assignment 
+	*/
+	EGetHead		=0x42,
+	/** the GetDelete PDU type assignment 
+	*/
+	EGetDelete		=0x43,
+	/** the GetTrace PDU type assignment 
+	*/
+	EGetTrace		=0x44,
+	/** the Post PDU type assignment 
+	*/
+	EPost			=0x60,
+	/** the PostPut PDU type assignment 
+	*/
+	EPostPut		=0x61
+	};
+
+
+	/** 
+	The offset of the transactionID field in WSP PDU.
+	@internalComponent
+	 */
+	const TUint KPDUHeaderTransactionIDOffSet	=0;
+	/** 
+	The offset of the WSP PDU type field in WSP PDU.
+	@internalComponent
+	 */
+	const TUint KPDUHeaderWSPPDUTypeOffSet		=1;
+	/** 
+	The offset of WSP field.
+	@internalComponent
+	*/
+	const TUint KPDUFieldOffset					=2;
+
+	/** 
+	The length of transactionID+PDUType
+	@internalComponent
+	*/
+	const TUint8 KPDUTransactionIDAndPDUTypeLength	=2;
+	/** 
+	The length of WSP status
+	@internalComponent
+	*/
+	const TUint8 KWSPStatusLength					=1;
+
+	/**
+	The mask of top 3 bits in varible length Unsigned integer
+	@internalComponent
+	*/
+	const TUint8 KTop3BitSet		= 0x70;
+
+	/**
+	The mask to valide each byte in varible length Unsigned integer
+	@internalComponent
+	*/
+	const TUint8 KWapQuote			= 0x7F;
+
+	/**
+	The mask of carry bit in each byte in varible length Unsigned integer
+	@internalComponent
+	*/
+	const TUint8 KCarryBitMask		= 0x80;
+
+	/**
+	Maximum length for varible length Unsigned integer
+	@internalComponent
+	*/
+	const TUint8 KMaxUintVarLength	= 5;
+
+	/**
+	shift 7 bits for each byte in Uint32
+	@internalComponent
+	*/
+	const TUint8 KUIntVarOctetShift	= 7;
+
+
+
+class CCLWSPPduHandler
+/** 
+The Connectionless WSP PDU Handler. This class provides a set of static interfaces 
+for WAP message APIs to pack and unpack the WSP PDU.   
+For error codes returned by methods in this class, see <wapmsgerr.h>.  Most methods can 
+return a set of general errors, with some returning additional specific errors.
+*/
+	{
+public: 
+
+
+
+public: // Public Interfaces
+	static void UnpackWSPPduL(HBufC8* aWSPPdu, TWSPPduType& aType, HBufC8*& aWSPHeader, HBufC8*& aBody, TUint8& aId, TWSPStatus& aStatus);
+	static void PackWSPPduL(HBufC8*& aWSPPdu, TWSPPduType aType, const TDesC& aURI, const TDesC8& aWSPHeader, const TDesC8& aBody, const TUint8 aId);
+
+private: // private methods
+	static void UnpackPushPduL(HBufC8* aWSPPdu, HBufC8*& aWSPHeader, HBufC8*& aBody);
+	static void UnpackReplyPduL(HBufC8* aWSPPdu, HBufC8*& aWSPHeader, HBufC8*& aBody, TWSPStatus& aStatus);
+	static void PackPostPduL(HBufC8*& aWSPPdu, TWSPPduType aType, const TDesC& aURI, const TDesC8& aWSPHeader, const TDesC8& aBody, const TUint8 aId);
+	static void PackGetPduL(HBufC8*& aWSPPdu, TWSPPduType aType, const TDesC& aURI, const TDesC8& aWSPHeader, const TUint8 aId);
+	static TInt UintVar(TUint32& aVal, TPtrC8& aBuffer, TUint aOffset);
+	static HBufC8* UintVarL(const TUint32 aInt);
+	};
+#endif // __CLWSPPDUHANDLER_H__