Transaction properties are accessed using the RHTTPTransaction::PropertySet() method,
which returns an RHTTPTransactionPropertySet handle. They
are used to store information related to a transaction that is required to
persist during the transaction lifetime. Such information is not transmitted;
the mechanism only provides an association, mainly used by Symbian developers
for filter.
The two pre-defined properties that can be set by the client are HTTP::EUsername and HTTP::EPassword. Their use is described in Validation filter.
An example of properties in use is taken from the Redirection filter, where a count is maintained of the number of redirections made in response to 300-series HTTP status codes:
// see if this transaction has been redirected before
THTTPHdrVal redirectCountProperty;
if (aTransaction.PropertySet().Property(p.StringF(HTTP::ERedirectCount,RHTTPSession::GetTable()),
redirectCountProperty))
{
__ASSERT_DEBUG(redirectCountProperty.Type() == THTTPHdrVal::KTIntVal, HTTPPanic::Panic(HTTPPanic::EHeaderInvalidType));
redirectCount = redirectCountProperty.Int();
__ASSERT_DEBUG(redirectCount > 0, HTTPPanic::Panic(HTTPPanic::EHeaderInvalidType));
}
// Only redirect a certain number of times, and update the redirect count property of the transaction
if (++redirectCount < KRedirectLimit)
aTransaction.PropertySet().SetPropertyL(p.StringF(HTTP::ERedirectCount,RHTTPSession::GetTable()), redirectCount);