|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #ifndef ATHENAPOOLCNVSVC_TPCNVLIST_H
17 #define ATHENAPOOLCNVSVC_TPCNVLIST_H
21 #include "boost/mpl/vector.hpp"
22 #include "boost/mpl/transform.hpp"
23 #include <boost/fusion/mpl.hpp>
24 #include "boost/fusion/container/vector.hpp"
25 #include "boost/fusion/container/vector/convert.hpp"
26 #include "boost/fusion/algorithm/iteration/accumulate.hpp"
35 template <
class CNV,
class TRANS,
class ... TPCNVS>
39 template <
class TPCNV>
56 typename ELT::Trans_t*
operator() (
typename ELT::Trans_t*
p, ELT& elt);
88 typedef boost::mpl::vector<TPCNVS...>
vec_t;
89 typedef typename boost::mpl::transform<vec_t, wrap_tpcnv<boost::mpl::_1> >
::type list_mpl_t;
105 std::unique_ptr<TRANS>
138 #endif // not ATHENAPOOLCNVSVC_TPCNVLIST_H
boost::mpl::transform< vec_t, wrap_tpcnv< boost::mpl::_1 > >::type list_mpl_t
bool persToTrans(CNV &parent, TRANS *trans, const std::string &key, MsgStream &msg)
Read the persistent object and convert it to transient.
const std::string & m_key
boost::mpl::vector< TPCNVS... > vec_t
Helper for calling a TP converter from an Athena converter.
const std::string & m_key
do_create_transient(CNV &parent, const std::string &key, MsgStream &msg)
TPCnvElt< CNV, TPCNV > type
boost::fusion::result_of::as_vector< list_mpl_t >::type list_t
Functional to iterate over TP converters and call persToTrans on each.
Helper for calling TP converters from an Athena converter.
do_pers_to_trans(CNV &parent, TRANS *trans, const std::string &key, MsgStream &msg)
ELT::Trans_t * operator()(typename ELT::Trans_t *p, ELT &elt)
Functional to iterate over TP converters and call createTransient on each.
std::unique_ptr< TRANS > createTransient(CNV &parent, const std::string &key, MsgStream &msg)
Read the persistent object and convert it to transient.
Metafunction to wrap a TP converter in TPCnvElt.
Helper for calling a TP converter from an Athena converter.
bool operator()(bool found, ELT &elt)
list_t m_list
List of TP converter instances, wrapped by TPCnvElt.