ATLAS Offline Software
AsgToolsStandaloneDict.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ASGTOOLS_ASGTOOLSSTANDALONEDICT_H
6 #define ASGTOOLS_ASGTOOLSSTANDALONEDICT_H
7 
8 #ifdef __GNUC__
9 # pragma GCC diagnostic ignored "-Wdeprecated-declarations"
10 #endif
11 
12 // Local include(s):
13 #include "AsgTools/AsgComponent.h"
15 #include "AsgTools/AsgToolConfig.h"
16 
17 // System include(s).
18 #include <map>
19 #include <string>
20 #include <tuple>
21 
22 // The following is only needed for standalone usage. In Athena the
23 // setProperty(...) function(s) come(s) from the AlgTool base class, with all
24 // the necessary dictionaries declared in GaudiKernel.
25 
26 // Helper macro for declaring the setProperty functions to the dictionary:
27 #define SETPROPERTY_INSTAN( TYPE ) \
28  template StatusCode asg::AsgComponent::setProperty< TYPE >( const std::string&, const TYPE& )
29 
30 // Declare all possible setProperty template instantiations to Reflex:
33 SETPROPERTY_INSTAN( unsigned short );
35 SETPROPERTY_INSTAN( unsigned int );
37 SETPROPERTY_INSTAN( unsigned long );
38 SETPROPERTY_INSTAN( long long );
39 SETPROPERTY_INSTAN( unsigned long long );
42 SETPROPERTY_INSTAN( std::string );
43 
44 SETPROPERTY_INSTAN( std::vector< bool > );
45 SETPROPERTY_INSTAN( std::vector< short > );
46 SETPROPERTY_INSTAN( std::vector< unsigned short > );
47 SETPROPERTY_INSTAN( std::vector< int > );
48 SETPROPERTY_INSTAN( std::vector< unsigned int > );
49 SETPROPERTY_INSTAN( std::vector< long > );
50 SETPROPERTY_INSTAN( std::vector< unsigned long > );
51 SETPROPERTY_INSTAN( std::vector< long long > );
52 SETPROPERTY_INSTAN( std::vector< unsigned long long > );
53 SETPROPERTY_INSTAN( std::vector< float > );
54 SETPROPERTY_INSTAN( std::vector< double > );
55 SETPROPERTY_INSTAN( std::vector< std::string > );
56 
57 // Make the compiler forget about this macro now...
58 #undef SETPROPERTY_INSTAN
59 
60 namespace {
61  struct ASGTOOLSSTANDALONEDICT_INSTANTIATIONS {
62  std::vector<std::string> type1;
63  std::map<std::string, std::vector<std::string> > type2;
64  std::map<std::string, asg::details::AsgComponentPrivateToolConfig> type3;
65  };
66 }
67 
68 #endif // not ASGTOOLS_ASGTOOLSDICT_H
AsgComponentConfig.h
AsgToolConfig.h
SETPROPERTY_INSTAN
#define SETPROPERTY_INSTAN(TYPE)
Definition: AsgToolsStandaloneDict.h:27
AsgComponent.h