ATLAS Offline Software
MultiAssociationTool.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 /*
4  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // $Id$
16 #ifndef D3PDMAKERUTILS_MULTIASSOCIATIONTOOL_H
17 #define D3PDMAKERUTILS_MULTIASSOCIATIONTOOL_H
18 
19 
21 
22 
23 namespace D3PD {
24 
25 
31 template <typename TO_T>
34 {
35 public:
42  MultiAssociationToolTo (const std::string& type,
43  const std::string& name,
44  const IInterface* parent);
45 
46 
52  virtual const std::type_info& elementTypeinfo() const;
53 
54 
60  virtual const void* nextUntyped();
61 
62 
68  virtual const TO_T* next () = 0;
69 
70 
80  virtual void releaseElementUntyped (const void* p);
81 
82 
92  virtual void releaseElement (const TO_T* p);
93 };
94 
95 
96 //=========================================================================
97 
98 
155 template <typename FROM_T, typename TO_T = FROM_T>
157  : public MultiAssociationToolTo<TO_T>
158 {
159 public:
166  MultiAssociationTool (const std::string& type,
167  const std::string& name,
168  const IInterface* parent);
169 
170 
174  virtual const std::type_info& fromTypeinfo() const;
175 
176 
181  virtual StatusCode resetUntyped (const void* p);
182 
183 
188  virtual StatusCode reset (const FROM_T& p) = 0;
189 };
190 
191 
192 } // namespace D3PD
193 
194 
197 
198 
199 #endif // not D3PDMAKERUTILS_MULTIASSOCIATIONTOOL_H
D3PD::MultiAssociationTool::fromTypeinfo
virtual const std::type_info & fromTypeinfo() const
Return the std::type_info for the source of the association.
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
D3PD::MultiAssociationToolTo
Helper for MultiAssociationTool.
Definition: MultiAssociationTool.h:34
D3PD::MultiAssociationTool
Type-safe wrapper for multiple-target associator tools.
Definition: MultiAssociationTool.h:158
D3PD::MultiAssociationTool::reset
virtual StatusCode reset(const FROM_T &p)=0
Start the iteration for a new association.
D3PD::MultiAssociationToolTo::next
virtual const TO_T * next()=0
Return a pointer to the next element in the association.
D3PD::MultiAssociationTool::resetUntyped
virtual StatusCode resetUntyped(const void *p)
Start the iteration for a new association.
D3PD
Block filler tool for noisy FEB information.
Definition: InnerDetector/InDetMonitoring/InDetGlobalMonitoring/macros/EnhancedPrimaryVertexMonitoring/TrigD3PD/ChainGroup.h:21
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MultiAssociationTool.icc
test_pyathena.parent
parent
Definition: test_pyathena.py:15
D3PD::MultiAssociationToolTo::MultiAssociationToolTo
MultiAssociationToolTo(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MultiAssociationToolImpl.h
Non-template parts of MultiAssociationTool.
D3PD::MultiAssociationToolTo::elementTypeinfo
virtual const std::type_info & elementTypeinfo() const
Return the element type for the target of the association.
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
D3PD::MultiAssociationTool::MultiAssociationTool
MultiAssociationTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
MultiAssociationToolMulti.h
A specialization of MultiAssociationTool that can accept one of several types.
D3PD::MultiAssociationToolTo::releaseElement
virtual void releaseElement(const TO_T *p)
Release an object retrieved from the association.
D3PD::MultiAssociationToolTo::nextUntyped
virtual const void * nextUntyped()
Return a pointer to the next element in the association.
D3PD::MultiAssociationToolTo::releaseElementUntyped
virtual void releaseElementUntyped(const void *p)
Release an object retrieved from the association.
D3PD::MultiAssociationToolImpl
Non-template parts of MultiAssociationTool.
Definition: MultiAssociationToolImpl.h:46