The Gaudi Framework
master (37c0b60a)
IDataStoreAgent.h
Go to the documentation of this file.
1
/***********************************************************************************\
2
* (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3
* *
4
* This software is distributed under the terms of the Apache version 2 licence, *
5
* copied verbatim in the file "LICENSE". *
6
* *
7
* In applying this licence, CERN does not waive the privileges and immunities *
8
* granted to it by virtue of its status as an Intergovernmental Organization *
9
* or submit itself to any jurisdiction. *
10
\***********************************************************************************/
11
#ifndef GAUDIKERNEL_IDATASTOREAGENT_H
12
#define GAUDIKERNEL_IDATASTOREAGENT_H
13
14
// Framework include files
15
#include <
GaudiKernel/Kernel.h
>
16
#include <functional>
17
18
// Forward declarations:
19
class
IRegistry
;
20
27
class
GAUDI_API
IDataStoreAgent
{
28
public
:
30
virtual
~IDataStoreAgent
() =
default
;
31
35
virtual
bool
analyse
(
IRegistry
* pObject,
int
level
) = 0;
36
};
37
38
namespace
details
{
39
template
<
typename
F>
40
class
GenericDataStoreAgent
final :
public
IDataStoreAgent
{
41
F
f
;
42
43
public
:
44
template
<
typename
G>
45
GenericDataStoreAgent
( G&&
g
) :
f
{ std::forward<G>(
g
) } {}
46
47
bool
analyse
(
IRegistry
* pObj,
int
level
)
override
{
return
std::invoke(
f
, pObj,
level
); }
48
};
49
}
// namespace details
50
51
template
<
typename
F>
52
::details::GenericDataStoreAgent<F>
makeDataStoreAgent
( F&& f ) {
53
return
{ std::forward<F>( f ) };
54
}
55
56
#endif // GAUDIKERNEL_IDATASTOREAGENT_H
details::GenericDataStoreAgent::GenericDataStoreAgent
GenericDataStoreAgent(G &&g)
Definition:
IDataStoreAgent.h:45
IDataStoreAgent::analyse
virtual bool analyse(IRegistry *pObject, int level)=0
Analyse the data object.
details::GenericDataStoreAgent::analyse
bool analyse(IRegistry *pObj, int level) override
Analyse the data object.
Definition:
IDataStoreAgent.h:47
details::GenericDataStoreAgent
Definition:
IDataStoreAgent.h:40
IRegistry
Definition:
IRegistry.h:32
details::GenericDataStoreAgent::f
F f
Definition:
IDataStoreAgent.h:41
details
Definition:
AnyDataWrapper.h:19
gaudirun.g
dictionary g
Definition:
gaudirun.py:582
gaudirun.level
level
Definition:
gaudirun.py:364
Kernel.h
IDataStoreAgent::~IDataStoreAgent
virtual ~IDataStoreAgent()=default
destructor
makeDataStoreAgent
::details::GenericDataStoreAgent< F > makeDataStoreAgent(F &&f)
Definition:
IDataStoreAgent.h:52
GAUDI_API
#define GAUDI_API
Definition:
Kernel.h:81
IDataStoreAgent
Definition:
IDataStoreAgent.h:27
GaudiKernel
include
GaudiKernel
IDataStoreAgent.h
Generated on Thu Dec 19 2024 15:35:01 for The Gaudi Framework by
1.8.18