You must use the RHTTPSession::SetupHTTPDataOptimiser()
function
of the RHTTPSession
class to enable the MHTTPDataOptimiser
implementation
for a session. The following code illustrates the RHTTPSession
class:
class RHTTPSession { public: …… RHTTPSession::SetupHTTPDataOptimiser (MHTTPDataOptimiser& aHTTPOptimiser); MHTTPDataOptimiser* RHTTPSession::HTTPDataOptimiser (); };
For a session, if you want to prevent a transaction from using the MHTTPDataOptimiser implementation, see the Overriding the optimiser for a session section.
Note: For more information about how to enable the MHTTPDataOptimiser
implementation
for a session, see the HTTP
Whole Message Filter example section.
By default, if the MHTTPDataOptimiser
implementation
is enabled for a session, it applies to all transactions within the session
when the MHTTPDataOptimiser
implementation is not enabled
for individual transactions. In a scenario where you want to prevent a particular
transaction (for which MHTTPDataOptimiser
implementation
is not enabled) of a session from using the MHTTPDataOptimiser
implementation
of the session, set the EHTTPTransOptimiser
property with
the value EDisableHTTPTransOptimiser on that transaction.
The
following code illustrates how to set the EHTTPTransOptimiser
property:
// HTTP session object RHTTPSession sess; // The MHTTPDataOptimiser implementation is enabled for a session. sess.SetupHttpDataOptimiser(*this); // HTTP transaction object RHTTPTransaction trans = sess.OpenTransactionL(const TUriC8&, MHTTPTransactionCallback&, RStringF); THTTPHdrVal disableOptimiser(sess.StringPool().StringF(HTTP::EDisableHTTPTransOptimiser, RHTTPSession::GetTable())); trans.PropertySet().SetPropertyL(sess.StringPool().StringF(HTTP::EHTTPTransOptimiser, RHTTPSession::GetTable()), disableOptimiser);