xdmprotocols/XcapProtocol/XcapHttpTransport/src/XcapHttpContSupplier.cpp
changeset 0 c8caa15ef882
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xdmprotocols/XcapProtocol/XcapHttpTransport/src/XcapHttpContSupplier.cpp	Tue Feb 02 01:05:17 2010 +0200
@@ -0,0 +1,139 @@
+/*
+* Copyright (c) 2005 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:   CXcapHttpContSupplier
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "XcapHttpTransport.h"
+#include "XcapHttpContSupplier.h"
+
+// ================= MEMBER FUNCTIONS =======================
+//
+
+// ----------------------------------------------------------
+// CXcapHttpContSupplier::CXcapHttpContSupplier
+// 
+// ----------------------------------------------------------
+//
+CXcapHttpContSupplier::CXcapHttpContSupplier( RHTTPSession& aHttpSession,
+                                              CXcapHttpAuthManager& aAuthManager,
+                                              CXcapHttpTransport& aTransportMain ) :
+                                              CXcapHttpRequest( aHttpSession, aAuthManager, aTransportMain )
+                                        
+    {
+    }
+
+// ----------------------------------------------------------
+// CXcapHttpContSupplier::~CXcapHttpContSupplier
+// 
+// ----------------------------------------------------------
+//
+CXcapHttpContSupplier::~CXcapHttpContSupplier()
+    {
+    #ifdef _DEBUG
+        iTransportMain.WriteToLog( _L8( "CXcapHttpContSupplier::~CXcapHttpContSupplier()" ) );    
+    #endif
+    delete iRequestBody;
+    }
+
+// ----------------------------------------------------------
+// CXcapHttpContSupplier::SetRequestBodyL
+// 
+// ----------------------------------------------------------
+//
+EXPORT_C void CXcapHttpContSupplier::SetRequestBodyL( const TDesC8& aRequestBody )
+    {
+    #ifdef _DEBUG
+        iTransportMain.WriteToLog( _L8( "CXcapHttpContSupplier::SetRequestBodyL" ) );    
+    #endif
+    delete iRequestBody;
+    iRequestBody = NULL;
+    iRequestBody = HBufC8::NewL( aRequestBody.Length() );
+    iRequestBody->Des().Copy( aRequestBody );
+    }
+
+// ----------------------------------------------------------
+// CXcapHttpContSupplier::RequestBody
+// 
+// ----------------------------------------------------------
+//
+EXPORT_C TPtrC8 CXcapHttpContSupplier::RequestBody() const
+    {
+    #ifdef _DEBUG
+        iTransportMain.WriteToLog( _L8( "CXcapHttpContSupplier::RequestBody" ) );    
+    #endif
+    return iRequestBody != NULL ? iRequestBody->Des() : TPtrC8();
+    }
+    
+// ----------------------------------------------------------
+// CXcapHttpContSupplier::GetNextDataPart
+// 
+// ----------------------------------------------------------
+//
+TBool CXcapHttpContSupplier::GetNextDataPart( TPtrC8& aDataPart )
+    {
+    aDataPart.Set( iRequestBody->Des() );
+    return ETrue;
+    }
+
+// ----------------------------------------------------------
+// CXcapHttpContSupplier::ReleaseData
+// 
+// ----------------------------------------------------------
+//
+void CXcapHttpContSupplier::ReleaseData()
+    {
+    #ifdef _DEBUG
+        iTransportMain.WriteToLog( _L8( "CXcapHttpContSupplier::ReleaseData()" ) );    
+    #endif
+    //Not just yet, lets see if the server accepts the data.
+    //If it does, the data needs to be cached and this is
+    //probably  - and hopefully - the only copy of the raw 
+    //data still available at that point in time
+    //delete iRequestBody;
+    //iRequestBody = NULL;
+    }
+
+// ----------------------------------------------------------
+// CXcapHttpContSupplier::Reset
+// 
+// ----------------------------------------------------------
+//
+TInt CXcapHttpContSupplier::Reset()
+	{
+	//This method is called when client Cancel()s a request.
+	//There's nothing to reset in our case, because all needed
+	//resources are destructed in the destructor.
+	//NOTE: Never EVER set this method to return anything but
+	//KErrNone, since values < 0 will result in practically
+	//untraceable errors thanks to Symbian's lack of proper
+	//documentation on the issue.
+	return KErrNone;
+	}
+
+// ----------------------------------------------------------
+// CXcapHttpContSupplier::GetNextDataPart
+// 
+// ----------------------------------------------------------
+//
+TInt CXcapHttpContSupplier::OverallDataSize()
+	{
+    return iRequestBody != NULL ? iRequestBody->Length() : 0;
+	}
+
+