ATLAS Offline Software
Loading...
Searching...
No Matches
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):
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:
33SETPROPERTY_INSTAN( unsigned short );
35SETPROPERTY_INSTAN( unsigned int );
37SETPROPERTY_INSTAN( unsigned long );
38SETPROPERTY_INSTAN( long long );
39SETPROPERTY_INSTAN( unsigned long long );
42SETPROPERTY_INSTAN( std::string );
43
44SETPROPERTY_INSTAN( std::vector< bool > );
45SETPROPERTY_INSTAN( std::vector< short > );
46SETPROPERTY_INSTAN( std::vector< unsigned short > );
47SETPROPERTY_INSTAN( std::vector< int > );
48SETPROPERTY_INSTAN( std::vector< unsigned int > );
49SETPROPERTY_INSTAN( std::vector< long > );
50SETPROPERTY_INSTAN( std::vector< unsigned long > );
51SETPROPERTY_INSTAN( std::vector< long long > );
52SETPROPERTY_INSTAN( std::vector< unsigned long long > );
53SETPROPERTY_INSTAN( std::vector< float > );
54SETPROPERTY_INSTAN( std::vector< double > );
55SETPROPERTY_INSTAN( std::vector< std::string > );
56
57// Make the compiler forget about this macro now...
58#undef SETPROPERTY_INSTAN
59
60namespace {
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
#define SETPROPERTY_INSTAN(TYPE)