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  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4 */
13 #ifndef D3PDMAKERUTILS_MULTIASSOCIATIONTOOL_H
14 #define D3PDMAKERUTILS_MULTIASSOCIATIONTOOL_H
15 
16 
18 
19 
20 namespace D3PD {
21 
22 
28 template <typename TO_T>
31 {
32 public:
40 
41 
47  virtual const std::type_info& elementTypeinfo() const;
48 
49 
55  virtual const void* nextUntyped();
56 
57 
63  virtual const TO_T* next () = 0;
64 
65 
75  virtual void releaseElementUntyped (const void* p);
76 
77 
87  virtual void releaseElement (const TO_T* p);
88 };
89 
90 
91 //=========================================================================
92 
93 
150 template <typename FROM_T, typename TO_T = FROM_T>
152  : public MultiAssociationToolTo<TO_T>
153 {
154 public:
162 
163 
167  virtual const std::type_info& fromTypeinfo() const;
168 
169 
174  virtual StatusCode resetUntyped (const void* p);
175 
176 
181  virtual StatusCode reset (const FROM_T& p) = 0;
182 };
183 
184 
185 } // namespace D3PD
186 
187 
190 
191 
192 #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.
D3PD::MultiAssociationToolImpl::MultiAssociationToolImpl
MultiAssociationToolImpl(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
Definition: MultiAssociationToolImpl.cxx:28
D3PD::MultiAssociationToolTo
Helper for MultiAssociationTool.
Definition: MultiAssociationTool.h:31
D3PD::MultiAssociationTool
Type-safe wrapper for multiple-target associator tools.
Definition: MultiAssociationTool.h:153
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: CaloCellDetailsFillerTool.cxx:29
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MultiAssociationTool.icc
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.
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