diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/mw/chttpclienttransaction.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/mw/chttpclienttransaction.h Wed Mar 31 12:33:34 2010 +0100 @@ -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 +#include +#include +#include +#include +#include + +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__