--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httpservice/inc/chttpclienttransaction.h Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,113 @@
+// 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 __CHTTPCLIENTTRANSACTION_H__
+#define __CHTTPCLIENTTRANSACTION_H__
+
+#include <e32base.h>
+#include <f32file.h>
+#include <http.h>
+#include <httpheaderiter.h>
+#include <mhttpcontentsource.h>
+#include <mhttpcontentsink.h>
+
+class CHttpService;
+class CHttpClientTransactionImpl;
+
+/**
+ * In HTTP terms a single transaction is one request and its equivalent response. CHttpClientTransaction
+ * encapsulates the information for the transaction. The client transaction is associated with the client
+ * session. Client should derive from this class and implement the concrete use cases. [for ex; download,
+ * upload etc..]
+ *
+ * @publishedAll
+ * @prototype
+ *
+ */
+class CHttpClientTransaction : public CBase
+ {
+ public:
+
+ IMPORT_C TInt Create(CHttpService& aClient, const TDesC8& aMethod, const TDesC8& aUri);
+
+ IMPORT_C virtual ~CHttpClientTransaction();
+
+ IMPORT_C TInt StatusCode() const;
+ IMPORT_C const TDesC8& StatusText() const;
+
+ IMPORT_C void DisablePipelining();
+ IMPORT_C void SetNoRetry();
+
+ IMPORT_C TInt SetContentSource(MHttpContentSource& aSource);
+ IMPORT_C TInt SetContentSource(RFile& aFile);
+
+ IMPORT_C TInt SetContentSink(MHttpContentSink& aSink);
+ IMPORT_C TInt SetContentSink(RFile& aFile);
+
+ IMPORT_C void SetRequestTimeout(TInt aValue);
+ IMPORT_C void SetResponseTimeout(TInt aValue);
+
+ IMPORT_C TInt AddRequestHeader(TInt aHeaderId, const THttpHeaderValueVariant& aHeaderValue);
+ IMPORT_C TInt AddRequestHeader(TInt aHeaderId, const THttpHeaderValueVariant& aHeaderValue, TInt aParamId, const THttpHeaderValueVariant& aParamValue);
+ IMPORT_C TInt AddRequestHeader(const TDesC8& aHeaderName, const THttpHeaderValueVariant& aHeaderValue);
+ IMPORT_C TInt AddRequestHeader(const TDesC8& aHeaderName, const THttpHeaderValueVariant& aHeaderValue, const TDesC8& aParamName, const THttpHeaderValueVariant& aParamValue);
+ IMPORT_C TInt AddRequestHeader(const TDesC8& aHeaderName, const TDesC8& aParamName, const THttpHeaderValueVariant& aParamValue);
+
+
+ IMPORT_C TInt AddCustomRequestHeader(const TDesC8& aHeaderName, const TDesC8& aHeaderValue);
+
+
+ IMPORT_C THttpHeaderIterator ResponseHeaders() const;
+ IMPORT_C THttpHeaderElementIterator ResponseHeader(TInt aHeaderId);
+ IMPORT_C THttpHeaderElementIterator ResponseHeader(const TDesC8& aHeaderName);
+
+
+ IMPORT_C TInt SendRequest();
+ IMPORT_C void CancelRequest();
+
+ /**
+ virtual functions
+ */
+ virtual void OnResponseHeaders() =0;
+ IMPORT_C virtual void OnTransferProgress(TInt aTotal, TInt aTransffered);
+ IMPORT_C virtual TBool OnRedirection();
+ virtual void OnCompletion() =0;
+ virtual void OnError(TInt aError) =0;
+ IMPORT_C virtual void OnWarning(TInt aWarning);
+
+ private:
+ // Reserved for future use.
+ inline virtual void Reserved();
+ inline virtual void Reserved2();
+
+ protected:
+ IMPORT_C CHttpClientTransaction();
+
+
+ private:
+ CHttpClientTransactionImpl* iHttpClientTrans;
+ };
+
+// Reserved for future use.
+inline void CHttpClientTransaction::Reserved()
+ {
+ }
+
+inline void CHttpClientTransaction::Reserved2()
+ {
+ }
+
+#endif // __CHTTPCLIENTTRANSACTION_H__