ATLAS Offline Software
Namespaces | Functions
T_AthenaPoolCreateFuncs.h File Reference

Helpers for calling TP converters. More...

#include "TPTools/ITPConverter.h"
#include "GaudiKernel/MsgStream.h"
#include <memory>
#include <type_traits>
Include dependency graph for T_AthenaPoolCreateFuncs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 EventContainers
 
 AthenaPoolCnvSvc
 

Functions

template<class TPCNV , typename std::enable_if_t< std::is_base_of_v< ITPConverter, TPCNV > > * = nullptr>
std::unique_ptr< typename TPCNV::Pers_t > AthenaPoolCnvSvc::createPersistent (TPCNV &cnv, const typename TPCNV::Trans_t *transObj, const std::string &key, MsgStream &log)
 Create a persistent object from a transient object. More...
 
template<class TPCNV , typename std::enable_if_t< std::is_base_of_v< ITPConverter, TPCNV > > * = nullptr>
std::unique_ptr< typename TPCNV::Trans_t > AthenaPoolCnvSvc::createTransient (TPCNV &cnv, const typename TPCNV::Pers_t *persObj, const std::string &key, MsgStream &log)
 Create a transient object from a persistent object. More...
 

Detailed Description

Helpers for calling TP converters.

Author
scott snyder snyde.nosp@m.r@bn.nosp@m.l.gov
Date
Sep, 2019 This file providers two helpers for calling TP converters from the templated pool converters.

Some TP converters derive from ITPConverter. In that case, we want to call createPersistent / createTransient(). But some TP converters do not; in that case, we should call transToPers() / persToTrans() directly.

In the first case, we actually call the *WithKey versions. We don't support passing the key to converters that don't derive from ITPConverter.

Definition in file T_AthenaPoolCreateFuncs.h.