applayerprotocols/httptransportfw/httpmessage/rhttpmessagecomposer.cpp
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httptransportfw/httpmessage/rhttpmessagecomposer.cpp	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,109 @@
+// 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:
+//
+
+#include "rhttpmessagecomposer.h"
+
+#include "chttpmessagecomposer.h"
+
+EXPORT_C void RHttpMessageComposer::OpenL(MHttpMessageComposerObserver& aObserver)
+/**
+	Opens the object.
+	@param		aObserver	The observer for the composer.
+	@panic		EInvariantFalse	This RHttpMessageComposer has already been opened.
+*/
+	{
+	__ASSERT_ALWAYS( iImplementation == NULL, User::Invariant() );
+
+	iImplementation = CHttpMessageComposer::NewL(aObserver);
+	}
+
+EXPORT_C void RHttpMessageComposer::Close()
+/**
+	Closes the object. Any resources are freed.
+*/
+	{
+	delete iImplementation;
+	iImplementation = NULL;
+	}
+
+EXPORT_C void RHttpMessageComposer::MessageInfoAvailable()
+/**
+	Notifies the composer that more message info is available. The composer can
+	continue composing the message.
+	@pre		The composer is waiting for more message info.
+	@post		The composer continues composing the message.
+	@panic		EHttpMessagePanicBadDataState	The composer was not waiting for
+												more info.
+*/
+	{
+	iImplementation->MessageInfoAvailable();
+	}
+
+EXPORT_C void RHttpMessageComposer::GetMessageData(TPtrC8& aData)
+/**
+	Get the current message data.
+	@panic		EHttpMessagePanicBadDataState	There is no current data buffer 
+												ready.
+	@pre		The observer has been notified of available message data.
+*/
+	{
+	iImplementation->GetMessageData(aData);
+	}
+
+EXPORT_C void RHttpMessageComposer::ReleaseMessageData()
+/**
+	Release the message data. The observer has finished with the current message 
+	data buffer. The composer can continue composing the message.
+	@panic		EHttpMessagePanicBadDataState	There is no current data buffer 
+												ready.
+	@pre		The observer has been notified of available message data.
+	@post		The composer continues composing the message.
+*/
+	{
+	iImplementation->ReleaseMessageData();
+	}
+
+EXPORT_C void RHttpMessageComposer::Reset()
+/**
+	Composer reset request. As the observer can reset the composer during one of 
+	the callback functions, the composer must check for re-entrancy to avoid 
+	releasing resources that are still required. If the composer is either 
+	waiting for more message info or is waiting to process its state machine, 
+	the composer can safely reset immediately. Otherwise the composer is being
+	reset from within its RunL() and so it must defer resetting itself until a
+	safer point - this is the point in the RunL() where the next step is decided.
+	@panic		EHttpMessagePanicDoubleReset	The composer has been reset twice
+												in one of the callback functions.
+*/
+	{
+	iImplementation->Reset();
+	}
+
+EXPORT_C TBool RHttpMessageComposer::CheckMessagePendingComplete()
+/**
+	Message may be fully composed and sent. Have not yet received confirmation from socket.
+*/
+	{
+	return iImplementation->CheckMessagePendingComplete();
+	}
+
+EXPORT_C void RHttpMessageComposer::Reserved_RHttpMessageComposer()
+/**
+	Reserved function.
+	@panic	EInvariantFalse	This function should not be called.
+*/
+	{
+	User::Invariant();
+	}