- SessionInitiator::generateMetadata(role, handlerURL);
- for (vector<SessionInitiator*>::const_iterator i = m_handlers.begin(); i!=m_handlers.end(); ++i)
- (*i)->generateMetadata(role, handlerURL);
+ doGenerateMetadata(role, handlerURL); // assumes all chains support the RequestInitiator protocol
+ for_each(m_handlers.begin(), m_handlers.end(), boost::bind(&SessionInitiator::generateMetadata, _1, boost::ref(role), handlerURL));