ATLAS Offline Software
Loading...
Searching...
No Matches
UnitTestTool2.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7
8
9//
10// includes
11//
12
14
16
17//
18// method implementations
19//
20
21namespace asg
22{
23 UnitTestTool2 ::
24 UnitTestTool2 (const std::string& val_name)
25 : AsgTool (val_name),
26 m_regPublicHandle ("", nullptr),
27 m_regPrivateHandle ("", this),
28 m_anaPublicHandle ("asg::UnitTestTool1/anaPublicHandle", nullptr),
29 m_anaPrivateHandle ("asg::UnitTestTool1/anaPrivateHandle", this)
30 {
31 declareProperty ("allowEmpty", m_allowEmpty);
32
33 declareProperty ("regPublicHandle", m_regPublicHandle);
34 declareProperty ("regPrivateHandle", m_regPrivateHandle);
35 m_anaPublicHandle.declarePropertyFor (this, "anaPublicHandle");
36 m_anaPrivateHandle.declarePropertyFor (this, "anaPrivateHandle");
37 }
38
39
40
41 StatusCode UnitTestTool2 ::
42 initialize ()
43 {
44 m_anaPublicHandle.setAllowEmpty (m_allowEmpty);
45 m_anaPrivateHandle.setAllowEmpty (m_allowEmpty);
46
48 ANA_CHECK (m_anaPublicHandle.setProperty ("propertyInt", 111));
49 ANA_CHECK (m_anaPublicHandle.initialize ());
50
52 ANA_CHECK (m_anaPrivateHandle.setProperty ("propertyInt", 222));
53 ANA_CHECK (m_anaPrivateHandle.initialize ());
54
55 for (auto& handle : m_regPrivateArray)
56 ANA_CHECK (handle.retrieve());
57
58 return StatusCode::SUCCESS;
59 }
60
61
62
63 bool UnitTestTool2 ::
64 toolHandleEmpty (const std::string& handleName) const
65 {
66 if (handleName == "regPublicHandle")
67 return m_regPublicHandle.empty();
68 if (handleName == "regPrivateHandle")
69 return m_regPrivateHandle.empty();
70 if (handleName == "anaPublicHandle")
71 return m_anaPublicHandle.empty();
72 if (handleName == "anaPrivateHandle")
73 return m_anaPrivateHandle.empty();
74 throw std::runtime_error ("unknown handle: " + handleName);
75 }
76
77
78
79 const IUnitTestTool1 *UnitTestTool2 ::
80 getToolHandle (const std::string& handleName) const
81 {
82 if (handleName == "regPublicHandle")
83 return &*m_regPublicHandle;
84 if (handleName == "regPrivateHandle")
85 return &*m_regPrivateHandle;
86 if (handleName == "anaPublicHandle")
87 return &*m_anaPublicHandle;
88 if (handleName == "anaPrivateHandle")
89 return &*m_anaPrivateHandle;
90 throw std::runtime_error ("unknown handle: " + handleName);
91 }
92
93
94
95 StatusCode UnitTestTool2 ::
96 retrieveToolHandle (const std::string& handleName) const
97 {
98 if (handleName == "regPublicHandle")
99 return m_regPublicHandle.retrieve ();
100 if (handleName == "regPrivateHandle")
101 return m_regPrivateHandle.retrieve ();
102 throw std::runtime_error ("unknown handle: " + handleName);
103 }
104
105
106
107 bool UnitTestTool2 ::
108 wasUserConfigured (const std::string& handleName) const
109 {
110 if (handleName == "anaPublicHandle")
112 if (handleName == "anaPrivateHandle")
114 throw std::runtime_error ("unknown handle: " + handleName);
115 }
116
117
118
119 const ToolHandleArray<IUnitTestTool1>& UnitTestTool2 ::
120 getArray () const
121 {
122 return m_regPrivateArray;
123 }
124}
#define ANA_CHECK(EXP)
check whether the given expression was successful
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition AsgTool.cxx:58
the interface for UnitTestTool1
ToolHandleArray< IUnitTestTool1 > m_regPrivateArray
ToolHandle< IUnitTestTool1 > m_regPublicHandle
AnaToolHandle< IUnitTestTool1 > m_anaPublicHandle
AnaToolHandle< IUnitTestTool1 > m_anaPrivateHandle
ToolHandle< IUnitTestTool1 > m_regPrivateHandle