epoc32/include/mw/http/rhttptransaction.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
equal deleted inserted replaced
3:e1b950c65cb4 4:837f303aceeb
     1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     7 //
     8 // Initial Contributors:
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
     9 // Nokia Corporation - initial contribution.
    10 //
    10 //
    11 // Contributors:
    11 // Contributors:
    12 //
    12 //
    13 // Description:
    13 // Description:
    14 //
    14 //
    15 
    15 
    16 
       
    17 
       
    18 /**
    16 /**
    19  @file RHTTPTransaction.h
    17  @file
    20  @warning : This file contains Rose Model ID comments - please do not delete
    18  @warning : This file contains Rose Model ID comments - please do not delete
    21 */
    19 */
    22 
    20 
    23 #ifndef __RHTTPTRANSACTION_H__
    21 #ifndef __RHTTPTRANSACTION_H__
    24 #define __RHTTPTRANSACTION_H__ 
    22 #define __RHTTPTRANSACTION_H__ 
    65 		@leave KErrNoMemory There was not enough memory.
    63 		@leave KErrNoMemory There was not enough memory.
    66 	*/
    64 	*/
    67 	//##ModelId=3C4C188600ED
    65 	//##ModelId=3C4C188600ED
    68 	IMPORT_C void SubmitL(THTTPFilterHandle aStart = 
    66 	IMPORT_C void SubmitL(THTTPFilterHandle aStart = 
    69 						  THTTPFilterHandle::EClient);
    67 						  THTTPFilterHandle::EClient);
    70 
    68 	
       
    69 	IMPORT_C TInt Submit(THTTPFilterHandle aStart = THTTPFilterHandle::EClient);
    71 	/** Notify HTTP of the availability of more request body data,
    70 	/** Notify HTTP of the availability of more request body data,
    72 		when submitting body data in several parts.
    71 		when submitting body data in several parts.
    73 		
    72 		
    74 		@param aStart The filter supplying the new data. This will almost always be the client (default value)
    73 		@param aStart The filter supplying the new data. This will almost always be the client (default value)
    75 		@leave KErrNoMemory There was not enough memory.
    74 		@leave KErrNoMemory There was not enough memory.
    87 	*/
    86 	*/
    88 	//##ModelId=3C4C188600E2
    87 	//##ModelId=3C4C188600E2
    89 	IMPORT_C void SendEventL(THTTPEvent aStatus, 
    88 	IMPORT_C void SendEventL(THTTPEvent aStatus, 
    90 							 THTTPEvent::TDirection aDirection, 
    89 							 THTTPEvent::TDirection aDirection, 
    91 							 THTTPFilterHandle aStart);
    90 							 THTTPFilterHandle aStart);
    92 
    91 	
       
    92 	IMPORT_C TInt SendEvent(THTTPEvent aStatus, THTTPEvent::TDirection aDirection, THTTPFilterHandle aStart);
    93 	/** Gets the response. Note that the returned response may not be
    93 	/** Gets the response. Note that the returned response may not be
    94 		valid if it hasn't been created yet.
    94 		valid if it hasn't been created yet.
    95 		@see RHTTPMessage::IsValid()
    95 		@see RHTTPMessage::IsValid()
    96 	*/
    96 	*/
    97 //##ModelId=3C4C188600E1
    97 //##ModelId=3C4C188600E1
    98 	IMPORT_C RHTTPResponse Response() const;
    98 	IMPORT_C RHTTPResponse Response() const;
    99 
    99 
   100 	/// Gets the request.
   100 	// Gets the request.
   101 	//##ModelId=3C4C188600DA
   101 	//##ModelId=3C4C188600DA
   102 	IMPORT_C RHTTPRequest Request() const;
   102 	IMPORT_C RHTTPRequest Request() const;
   103 
   103 
   104 	/// Returns the session associated with the transaction.
   104 	// Returns the session associated with the transaction.
   105 	//##ModelId=3C4C188600D9
   105 	//##ModelId=3C4C188600D9
   106 	IMPORT_C RHTTPSession Session() const;
   106 	IMPORT_C RHTTPSession Session() const;
   107 
   107 
   108 	/** Returns the transaction's property set. This is used by filters
   108 	/** Returns the transaction's property set. This is used by filters
   109 		to store transaction-specific information, and by clients to
   109 		to store transaction-specific information, and by clients to
   169 					TCertInfo has been deprecated since v9.2. CCertificate may be used as an alternative.
   169 					TCertInfo has been deprecated since v9.2. CCertificate may be used as an alternative.
   170 	*/
   170 	*/
   171 	//##ModelId=3C4C188600B9
   171 	//##ModelId=3C4C188600B9
   172 	IMPORT_C TInt ServerCert(TCertInfo& aServerCert);
   172 	IMPORT_C TInt ServerCert(TCertInfo& aServerCert);
   173 
   173 
       
   174 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
       
   175 	/** Obtain the server certificate information for this transaction.  This function
       
   176 		should only be used for HTTP. WSP should use RHttpSession::ServerCert.
       
   177 		@see RHttpSession::ServerCert
       
   178 		@prototype
       
   179 		@return	a CCertificate pointer to an CX509Certificate object.
       
   180 		Calling code can safely cast to CX509Certificate if using  "HTTP/TCP".
       
   181 		NULL returned if certificate information not found.
       
   182 	*/
       
   183 #else
   174 	/** Obtain the server certificate information for this transaction.  This function
   184 	/** Obtain the server certificate information for this transaction.  This function
   175 		should only be used for HTTP. WSP should use RHttpSession::ServerCert.
   185 		should only be used for HTTP. WSP should use RHttpSession::ServerCert.
   176 		@see RHttpSession::ServerCert
   186 		@see RHttpSession::ServerCert
   177 		@internalAll
   187 		@internalAll
   178 		@prototype
   188 		@prototype
   179 		@return	a CCertificate pointer to an CX509Certificate object.
   189 		@return	a CCertificate pointer to an CX509Certificate object.
   180 		Calling code can safely cast to CX509Certificate if using  "HTTP/TCP".
   190 		Calling code can safely cast to CX509Certificate if using  "HTTP/TCP".
   181 		NULL returned if certificate information not found.
   191 		NULL returned if certificate information not found.
   182 	*/
   192 	*/
       
   193 #endif	//SYMBIAN_ENABLE_SPLIT_HEADERS
   183 	IMPORT_C const CCertificate* ServerCert();
   194 	IMPORT_C const CCertificate* ServerCert();
   184 	
   195 
       
   196 
   185 	/** Obtain the cipher suite information for this transaction.
   197 	/** Obtain the cipher suite information for this transaction.
   186 		@return RString containing the cipher suite as per RFC2246.
   198 		@return RString containing the cipher suite as per RFC2246.
   187 	*/
   199 	*/
   188 	IMPORT_C RString CipherSuite();
   200 	IMPORT_C RString CipherSuite();
   189 	
   201 
       
   202 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS		
       
   203 	/**Sets the HTTP data optimiser for the transaction.
       
   204 	@param aHttpOptimiser An object of the implementation of interface, MHttpDataOptimiser, supplied by the client.
       
   205 	*/
       
   206 #else
   190 	/**Sets the HTTP data optimiser for the transaction.
   207 	/**Sets the HTTP data optimiser for the transaction.
   191 	@param aHttpOptimiser An object of the implementation of interface, MHttpDataOptimiser, supplied by the client.
   208 	@param aHttpOptimiser An object of the implementation of interface, MHttpDataOptimiser, supplied by the client.
   192 	@publishedPartner
   209 	@publishedPartner
   193 	*/
   210 	@released
       
   211 	*/
       
   212 #endif	//SYMBIAN_ENABLE_SPLIT_HEADERS
   194  	IMPORT_C void SetupHttpDataOptimiser (MHttpDataOptimiser& aHttpOptimiser);
   213  	IMPORT_C void SetupHttpDataOptimiser (MHttpDataOptimiser& aHttpOptimiser);
   195  
   214  
       
   215  #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS		
       
   216  	/**Returns the object of the MHttpDataOptimiser implementation class.
       
   217 	*/
       
   218 #else
   196  	/**Returns the object of the MHttpDataOptimiser implementation class.
   219  	/**Returns the object of the MHttpDataOptimiser implementation class.
   197 	@internalTechnology
   220 	@internalTechnology
   198 	*/
   221 	*/
       
   222 #endif	//SYMBIAN_ENABLE_SPLIT_HEADERS
   199  	IMPORT_C MHttpDataOptimiser* HttpDataOptimiser ();
   223  	IMPORT_C MHttpDataOptimiser* HttpDataOptimiser ();
   200 
   224 
   201 private:
   225 private:
   202 	friend class RHTTPSession;
   226 	friend class RHTTPSession;
   203 	friend class CTransaction;
   227 	friend class CTransaction;
   204 
   228 	friend class CProtocolHandler;
       
   229 	
       
   230 	inline CTransaction* Implementation();
   205  private:
   231  private:
   206 	//##ModelId=3C4C188600A7
   232 	//##ModelId=3C4C188600A7
   207 	CTransaction* iImplementation;
   233 	CTransaction* iImplementation;
   208 	}; 
   234 	}; 
   209 
   235 
   219 inline RHTTPTransaction::RHTTPTransaction()
   245 inline RHTTPTransaction::RHTTPTransaction()
   220 		: iImplementation(NULL)
   246 		: iImplementation(NULL)
   221 	{
   247 	{
   222 	}
   248 	}
   223 
   249 
       
   250 inline CTransaction* RHTTPTransaction::Implementation()
       
   251     {
       
   252     return iImplementation;
       
   253     }
   224 
   254 
   225 #endif // __RHTTPTRANSACTION_H__
   255 #endif // __RHTTPTRANSACTION_H__