applayerprotocols/httptransportfw/httpmessage/mhttpmessagecomposerobserver.h
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httptransportfw/httpmessage/mhttpmessagecomposerobserver.h	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,108 @@
+// 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 __MHTTPMESSAGECOMPOSEROBSERVER_H__
+#define __MHTTPMESSAGECOMPOSEROBSERVER_H__
+
+#include <e32std.h>
+
+class MHTTPDataSupplier;
+
+class MHttpMessageComposerObserver
+/**	
+The MHttpMessageComposerObserver class is the observer API for the http 
+message composer. It allows the composer to notify its observer when it has
+http message data ready to send and when the message has been completed.
+
+Also, the composer uses this API to obtain the http message info, e.g the 
+required start-line. The observer is responsible for ensuring that the 
+supplied tokens remain valid until the composer notifies it that it has 
+completed the message.
+
+The observer is notified of any errors that occur in the composer.	
+@see		RHttpMessageComposer
+*/
+	{
+public:	// methods
+
+/**	
+	Provides the start-line tokens.
+	@param		aToken1		An output argument set to the first token.
+	@param		aToken2		An output argument set to the second token.
+	@param		aToken3		An output argument set to the third token.
+*/
+	virtual void StartLineL(TPtrC8& aToken1, TPtrC8& aToken2, TPtrC8& aToken3) =0;
+
+/**	
+	Provides the next header field tokens. The return value indicates whether
+	there is a header or not. If there is no more headers, then the output 
+	arguments are not valid and therefore should not be used.
+	@param		aHeaderName		An output argument set to the header field name.
+	@param		aHeaderValue	An output argument set to the header field value.
+	@return		A value of KErrNotFound if there are no more headers. A value 
+				of KErrNone if a header field is specified in the output 
+				arguments.
+*/
+	virtual TInt NextHeaderL(TPtrC8& aHeaderName, TPtrC8& aHeaderValue) =0;
+
+/**
+	Request to see if there is an entity body.
+	@return		A value of NULL if there is no entity body. If there is a entity
+				body a pointer to the data supplier object that will supply the
+				entity body data is returned.
+*/
+	virtual MHTTPDataSupplier* HasBodyL() =0;
+
+/**
+	Provides the next trailer header field tokens. The return value indicates 
+	whether there is a trailer header or not. If there is no more headers, then
+	the output arguments are not valid and therefore should not be used.
+	@param		aHeaderName		An output argument set to the header field name.
+	@param		aHeaderValue	An output argument set to the header field value.
+	@return		A value of KErrNotFound if there are no more trailers. A value 
+				of KErrNone if a trailer header field is specified in the output
+				arguments.
+*/
+	virtual TInt NextTrailerL(TPtrC8& aHeaderName, TPtrC8& aHeaderValue) =0;
+
+/**	
+	Notifies the observer that the message has been completed.
+*/
+	virtual void MessageComplete() =0;
+
+/**
+	Notifies the observer that there is message data ready to be sent.
+*/
+	virtual void MessageDataReadyL() =0;
+
+/**
+	Notifies the observer that an error has ocurred in the composer. The 
+	composer has reset itself.
+	@param		aError	The error code that has occurred.
+	@return		A value of KErrNone if the error has been handled. Any other 
+				value if the error has not been handled.
+*/
+	virtual TInt HandleComposeError(TInt aError) =0;
+
+private:	// methods
+
+/**
+	Reserved function.
+*/
+	virtual void Reserved_MHttpMessageComposerObserver() =0;
+
+	};
+
+#endif	// __MHTTPMESSAGECOMPOSEROBSERVER_H__