epoc32/include/mw/chttpclienttransaction.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 
    17 #ifndef __CHTTPCLIENTTRANSACTION_H__
    18 #define __CHTTPCLIENTTRANSACTION_H__
    19 
    20 #include <e32base.h>
    21 #include <f32file.h>  
    22 #include <http.h>
    23 #include <httpheaderiter.h>
    24 #include <mhttpcontentsource.h>
    25 #include <mhttpcontentsink.h>
    26 
    27 class CHttpService;
    28 class CHttpClientTransactionImpl;
    29 
    30 /**
    31  * In HTTP terms a single transaction is one request and its equivalent response. CHttpClientTransaction 
    32  * encapsulates the information for the transaction. The client transaction is associated with the client 
    33  * session. Client should derive from this class and implement the concrete use cases. [for ex; download, 
    34  * upload etc..]
    35  * 
    36  * @publishedAll
    37  * @prototype
    38  * 
    39  */
    40 class CHttpClientTransaction : public CBase
    41 	{
    42 	public:
    43 	
    44 	IMPORT_C TInt Create(CHttpService& aClient, const TDesC8& aMethod, const TDesC8& aUri);
    45 	
    46 	IMPORT_C virtual ~CHttpClientTransaction();
    47 		
    48 	IMPORT_C TInt StatusCode() const;
    49 	IMPORT_C const TDesC8& StatusText() const;
    50 	
    51 	IMPORT_C void DisablePipelining();
    52 	IMPORT_C void SetNoRetry();
    53 	
    54 	IMPORT_C TInt SetContentSource(MHttpContentSource& aSource);
    55 	IMPORT_C TInt SetContentSource(RFile& aFile);
    56 	
    57 	IMPORT_C TInt SetContentSink(MHttpContentSink& aSink);
    58 	IMPORT_C TInt SetContentSink(RFile& aFile);
    59 	
    60 	IMPORT_C void SetRequestTimeout(TInt aValue);
    61 	IMPORT_C void SetResponseTimeout(TInt aValue);
    62 
    63 	IMPORT_C TInt AddRequestHeader(TInt aHeaderId, const THttpHeaderValueVariant& aHeaderValue);
    64 	IMPORT_C TInt AddRequestHeader(TInt aHeaderId, const THttpHeaderValueVariant& aHeaderValue, TInt aParamId, const THttpHeaderValueVariant& aParamValue); 
    65     IMPORT_C TInt AddRequestHeader(const TDesC8& aHeaderName, const THttpHeaderValueVariant& aHeaderValue);
    66     IMPORT_C TInt AddRequestHeader(const TDesC8& aHeaderName, const THttpHeaderValueVariant& aHeaderValue, const TDesC8& aParamName, const THttpHeaderValueVariant& aParamValue); 
    67     IMPORT_C TInt AddRequestHeader(const TDesC8& aHeaderName, const TDesC8& aParamName, const THttpHeaderValueVariant& aParamValue);    
    68 
    69 	
    70 	IMPORT_C TInt AddCustomRequestHeader(const TDesC8& aHeaderName, const TDesC8& aHeaderValue);
    71 	
    72 	
    73 	IMPORT_C THttpHeaderIterator         ResponseHeaders() const;
    74 	IMPORT_C THttpHeaderElementIterator 	ResponseHeader(TInt aHeaderId);
    75 	IMPORT_C THttpHeaderElementIterator 	ResponseHeader(const TDesC8& aHeaderName);
    76 
    77 
    78 	IMPORT_C TInt SendRequest();
    79 	IMPORT_C void CancelRequest();
    80 	
    81 	/**
    82 	virtual functions
    83 	*/
    84 	virtual void OnResponseHeaders() =0;
    85 	IMPORT_C virtual void OnTransferProgress(TInt aTotal, TInt aTransffered);
    86 	IMPORT_C virtual TBool OnRedirection();
    87 	virtual void OnCompletion() =0;
    88 	virtual void OnError(TInt aError) =0;
    89 	IMPORT_C virtual void OnWarning(TInt aWarning);
    90 	
    91 	private:
    92 	// Reserved for future use.
    93 	inline virtual void Reserved();
    94 	inline virtual void Reserved2();
    95 	
    96 	protected:
    97 	IMPORT_C CHttpClientTransaction();
    98 	
    99 	
   100 	private:		
   101 	CHttpClientTransactionImpl* iHttpClientTrans;
   102 	};
   103 
   104 // Reserved for future use.
   105 inline void CHttpClientTransaction::Reserved()
   106 	{
   107 	}
   108 	
   109 inline void CHttpClientTransaction::Reserved2()
   110 	{
   111 	}
   112 	
   113 #endif // __CHTTPCLIENTTRANSACTION_H__