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);