5#ifndef ATHENAKERNEL_IATHMETADATASVC_H
6#define ATHENAKERNEL_IATHMETADATASVC_H
14#include "GaudiKernel/INamedInterface.h"
35 virtual StatusCode
shmProxy(
const std::string& filename) = 0;
41 template <
typename T,
class TKEY>
44 template <
typename T,
class TKEY>
48 template <
typename T,
typename TKEY>
49 StatusCode
record(T* p2BRegistered,
const TKEY& key);
52 template <
typename T,
typename TKEY>
53 StatusCode
record(std::unique_ptr<T> pUnique,
const TKEY& key);
56 template <
typename T,
typename TKEY>
57 StatusCode
remove(
const TKEY& key,
bool ignoreIfAbsent=
false);
60 template <
typename T,
typename TKEY>
81inline std::set<std::string>
83 return std::set<std::string>( {key} );
91template <
typename T,
class TKEY>
101template <
typename T,
class TKEY>
111template <
typename T,
typename TKEY>
116 StatusCode
sc = StatusCode::FAILURE;
118 auto cont_uptr = std::make_unique< MetaCont<T> >();
129template <
typename T,
typename TKEY>
132 if( this->
record( pUnique.release(), key ).isSuccess() ) {
133 return StatusCode::SUCCESS;
135 return StatusCode::FAILURE;
139template <
typename T,
class TKEY>
147 return StatusCode::SUCCESS;
149 return ignoreIfAbsent? StatusCode::SUCCESS : StatusCode::FAILURE;
152template <
typename T,
typename TKEY>
The Athena Transient Store API.
StatusCode record(T *p2BRegistered, const TKEY &key)
Record an object with a key.
T * tryRetrieve() const
Variant of the above which doesn't print a warning message.
const T * tryConstRetrieve() const