ATLAS Offline Software
HandleClassifier.h
Go to the documentation of this file.
1 // This file's extension implies that it's C, but it's really -*- C++ -*-.
2 /*
3  * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration.
4  */
5 // $Id$
14 #ifndef ATHENABASECOMPS_HANDLECLASSIFIER_H
15 #define ATHENABASECOMPS_HANDLECLASSIFIER_H
16 
17 
19 #include "StoreGate/VarHandleKey.h"
21 #include <type_traits>
22 
23 
24 namespace SG {
25 
26 
27 // Tags to describe the type of a handle property.
28 class VarHandleType {};
31 class NotHandleType {};
32 
33 
40 template <class T>
42 {
46 
50 
51 
55 };
56 
57 
58 } // namespace SG
59 
60 
61 #endif // not ATHENABASECOMPS_HANDLECLASSIFIER_H
VarHandleBase.h
Base class for VarHandle classes.
VarHandleKey.h
A property holding a SG store/key/clid from which a VarHandle is made.
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
SG::VarHandleType
Definition: HandleClassifier.h:28
VarHandleKeyArray.h
Base class for VarHandleKeyArray for reading from StoreGate.
athena.value
value
Definition: athena.py:122
SG::HandleClassifier::type1
std::conditional< std::is_base_of< SG::VarHandleBase, T >::value, VarHandleType, NotHandleType >::type type1
Definition: HandleClassifier.h:45
SG::HandleClassifier::type2
std::conditional< std::is_base_of< SG::VarHandleKey, T >::value, VarHandleKeyType, type1 >::type type2
Definition: HandleClassifier.h:49
SG::NotHandleType
Definition: HandleClassifier.h:31
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
SG::VarHandleKeyType
Definition: HandleClassifier.h:29
SG::HandleClassifier
Helper to classify the type of a handle property.
Definition: HandleClassifier.h:42
SG::VarHandleKeyArrayType
Definition: HandleClassifier.h:30