applayerpluginsandutils/httpprotocolplugins/wspinc/MWspCOMethodCallback.h
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerpluginsandutils/httpprotocolplugins/wspinc/MWspCOMethodCallback.h	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,206 @@
+// 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:
+//
+
+/**
+ @file MWspCOMethodCallback.h
+ @warning : This file contains Rose Model ID comments - please do not delete
+*/
+
+#ifndef __MWSPCOMETHODCALLBACK_H__
+#define __MWSPCOMETHODCALLBACK_H__
+
+// System includes
+#include <e32std.h>
+#include <wsp/wsptypes.h>
+
+// Forward class declarations
+class MWspCOMethodInvoker;
+class MHTTPDataSupplier;
+
+// Types used for arguments in this file (e.g. TWspBearer) are from the Wap namespace
+using namespace Wap;
+
+
+class MWspCOMethodCallback
+/** 
+@class MWspCOMethodCallback
+@since			7.0
+The MWspCOMethodInvoker and MWspCOMethodCallback form the API that provides
+the WSP Connection-Orientated Session Service Method Invocation facility, as
+described in the WSP Specification, July 2001.
+
+The MWspCOMethodInvoker interface is supplied by the Provider entity. The 
+MWspCOMethodCallback interface is supplied by the Client entity. The Provider
+implements the communications necessary to send the primitives issued by the
+Client to the Server, and from the Server to the Client.
+
+A method transaction can only be invoked under the following circumstances;
+	1)	The WSP session is in either the Connecting, Connected or Resuming
+		state.
+	2)	The number of of outstanding method transactions has not reached the
+		negotiated Method MOR.
+Both these circumstances must be statisfied before a method may be invoked.
+
+Further, during the capability negotiations, the Protocol Option for Large 
+Data Transfer may be refused (WSP Specification 8.3.2.3). If this is the case,
+then the use of the S-MethodInvokeData (by the Client) and S-MethodResultData
+(by the Server) is forbidden.
+
+The effect of not supporting LDT is that POST data may not be streamed and 
+must not overflow the negotiated Server SDU size. The amount of allowed data
+in the S-MethodInvoke.req is dependent on the size of the destination URI 
+and the method headers. A method transaction that exceeds the Server SDU size
+is aborted by the Client and is not invoked on the Provider.
+
+Another case in which the Client may abort a method transaction is when the 
+negotiated Server Message size has been exceeded. This also applies when LDT 
+is supported in the WSP session. The Client aborts the method invocation on
+the Provider as well.
+
+The object that encapsulates the concept of a method transaction implements 
+the call-back API MWspCOMethodCallback. The Provider associates each of
+these objects with a Transaction Id used to distinguish between method 
+transactions during a WSP session.
+@publishedAll
+@deprecated
+*/
+	{
+public:	// Methods
+
+/** @fn				MethodInvokeCnf() =0
+	Intended Usage	:	This represents the S-MethodInvoke.cnf primitive. The 
+						Provider issues this primitive when it has received the
+						response to the method request invocation from the Server
+						(S-MethodInvoke.res). If the negotiated Server Message
+						size has been exceeded by the S-MethodInvoke.ind primitive,
+						then the Provider aborts the method transaction.
+
+	@since			7.0
+	@pre 			The WSP method transaction is in the Requesting state.
+	@post			If there are subsequent S-MethodInvokeData.req primitives to
+					be issued for this method request, then the WSP method 
+					transaction remains in the Requesting state. If the entire
+					request has been sent to the Server, then the WSP method
+					transaction is in the Waiting state.
+*/
+	virtual void MethodInvokeCnf() =0;
+
+/** @fn				MethodInvokeDataCnf() =0
+	Intended Usage	:	This represents the S-MethodInvokeData.cnf primitive. 
+						The Provider issues this primitive when it has received
+						the response to the method request invocation from the 
+						Server (S-MethodInvokeData.res).If the negotiated Server
+						Message size has been exceeded, then the Provider aborts 
+						the method transaction.
+	@since			7.0
+	@pre 			The WSP method transaction is in the Requesting state.
+	@post			If there are subsequent S-MethodInvokeData.req primitives 
+					to be issued for this method request, then the WSP method 
+					transaction remains in the Requesting state. If the entire
+					request has been sent to the Server, then the WSP method 
+					transaction is in the Waiting state.
+*/
+	virtual void MethodInvokeDataCnf() =0;
+
+/** @fn				MethodAbortInd(TWspReason aReason) =0
+	Intended Usage	:	This represents the S-MethodAbort.ind primitive. This
+						is issued when the method transaction has been aborted.
+	@since			7.0
+	@param			aReason	A parameter that indicates the cause of the abort.
+							The value maps to the Reason type defined in the WSP
+							Specification, July 2001.
+	@pre 			The WSP method transaction is not in the Null state.
+	@post			The WSP method transaction is in the Null state.
+*/
+	virtual void MethodAbortInd(TWspReason aReason) =0;
+
+/** @fn				MethodResultInd(TInt aStatus, const TDesC8& aResponseHeaders, MHTTPDataSupplier& aResponseBody, TBool aMoreData) =0
+	Intended Usage	:	This represents the S-MethodResult.ind primitive. The
+						Provider issues this primitive when it has received the
+						response for this method transaction from the Server.
+
+						The aMoreData flag indicates whether there are subsequent
+						S-MethodResultData primitives to follow. This is only 
+						possible if LDT is supported.
+
+						If there are subsequent S-MethodResultData primitives 
+						for this transaction, then the data supplier object
+						aResponseBody is used to obtain the body data in all the
+						subsequent S-MethodResultData primitives.
+
+						The Server expects the S-MethodResult.res primitive to
+						be sent from the Client.
+	@since			7.0
+	@param			aStatus				A status code whose value is given by 
+										the Status types defined in the WSP 
+										Specification, July 2001 .
+	@param			aResponseHeaders	A reference to buffer that provides the
+										encoded response headers.
+	@param			aResponseBody		A reference to a data supplier object
+										that provides the data associated 
+										with the response.
+	@param			aMoreDate			A flag indicating that there are subsequent
+										S-MethodResultData primitives to follow
+										for this transaction.
+	@pre 			The WSP method transaction is in the Waiting state.
+	@post			If subsequent S-MethodResultData primitives are expected,
+					then the WSP method transaction is in the Waiting2 state. 
+					If all the response information has been received, then the
+					WSP method transaction is in the Completing state.
+*/
+	virtual void MethodResultInd(
+								TInt					aStatus, 
+								const TDesC8&			aResponseHeaders, 
+								MHTTPDataSupplier&		aResponseBody,
+								TBool					aMoreData
+								) =0;
+
+/** @fn				MethodResultDataInd(const TDesC8& aTrailerHeaders, TBool aMoreData) =0
+	Intended Usage	:	This represents the S-MethodResultData.ind primitive.
+						The Provider sends more data associated with a 
+						previous S-MethodResult.ind primitive.
+						
+						The remaining body data is obtained using the data 
+						supplier object aResponseBody provided to the Client
+						as a parameter of the previous call to MethodResultInd().
+
+						The aMoreData flag indicates whether there are subsequent
+						S-MethodResultData primitives to follow.
+
+						If there are trailer headers these are provided by the
+						input parameter aTrailerHeaders. This is only valid if
+						this is the last S-MethodResultData primitive.
+
+						The Server expects the S-MethodResultData.res primitive 
+						to be sent from the Client.
+	@since			7.0
+	@param			aTrailerHeaders	A reference to a buffer with the encoded 
+									trailer headers. This must be empty unless
+									this is the last S-MethodResultData	
+									primitive.
+	@param			aMoreDate		A flag indicating that there are subsequent 
+									S-MethodResultData primitives to follow for 
+									this transaction.
+	@pre 			The WSP method transaction is in the Waiting2 state.
+	@post			If subsequent S-MethodResultData primitives are expected,
+					then the WSP method transaction is in the Waiting2 state. 
+					If all the response information has been received, then the
+					WSP method transaction is in the Completing state.
+*/
+	virtual void MethodResultDataInd(const TDesC8& aTrailerHeaders, TBool aMoreData) =0;
+
+	};
+
+#endif	// __MWSPCOMETHODCALLBACK_H__
\ No newline at end of file