diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/httpprotocolplugins/wspinc/MWspCOMethodCallback.h --- /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 +#include + +// 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