ATLAS Offline Software
Loading...
Searching...
No Matches
TAuxVectorFactory.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2//
3// Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4//
5#ifndef XAODROOTACCESS_TOOLS_TAUXVECTORFACTORY_H
6#define XAODROOTACCESS_TOOLS_TAUXVECTORFACTORY_H
7
8// Athena include(s):
12
13// Forward declaration(s):
14class TClass;
15class TVirtualCollectionProxy;
16
17namespace xAOD {
18
31
32 public:
34 TAuxVectorFactory( ::TClass* cl );
36 virtual ~TAuxVectorFactory();
37
40
43
45 virtual std::unique_ptr< SG::IAuxTypeVector >
46 create( SG::auxid_t auxid, size_t size, size_t capacity,
47 bool isLinked ) const override;
48
50 virtual std::unique_ptr< SG::IAuxTypeVector >
51 createFromData( SG::auxid_t auxid, void* data,
52 SG::IAuxTypeVector* linkedVector,
53 bool isPacked,
54 bool ownFlag,
55 bool isLinked ) const override;
56
58 virtual void
59 copy( SG::auxid_t auxid,
60 SG::AuxVectorData& dst, size_t dst_index,
61 const SG::AuxVectorData& src, size_t src_index,
62 size_t n) const override;
63
65 virtual void
67 SG::AuxVectorData& dst, size_t dst_index,
68 const SG::AuxVectorData& src, size_t src_index,
69 size_t n ) const override;
70
72 virtual void swap( SG::auxid_t auxid,
73 SG::AuxVectorData& a, size_t aindex,
74 SG::AuxVectorData& b, size_t bindex,
75 size_t n ) const override;
76
78 void clear( void* dst, size_t dst_index, size_t n ) const;
79 virtual void clear( SG::auxid_t auxid,
81 size_t dst_index,
82 size_t n ) const override;
83
85 virtual size_t getEltSize() const override;
86
88 virtual const std::type_info* tiVec() const override;
89
91 virtual bool isDynamic() const override { return true; }
92
98 virtual const std::type_info* tiAlloc() const override;
99
100
104 virtual std::string tiAllocName() const override;
105
106
108
109 private:
111 ::TClass* m_class;
113 ::TVirtualCollectionProxy* m_proxy;
117 void* m_defElt;
118
119 }; // class TAuxVectorFactory
120
121} // namespace xAOD
122
123#endif // XAODROOTACCESS_TOOLS_TAUXVECTORFACTORY_H
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Interface for factory objects that create vectors.
static Double_t a
Helper for thread-safe TMethodCall. Extracted from Type.
Define macros for attributes used to control the static checker.
Helper for making a thread-safe function call.
Manage lookup of vectors of auxiliary data.
Interface for factory objects that create vectors.
Abstract interface for manipulating vectors of arbitrary types.
void * m_defElt
Pointer to a default element object in memory.
void clear(void *dst, size_t dst_index, size_t n) const
Clear the payload of a given range inside a vector.
virtual const std::type_info * tiAlloc() const override
Return the type_info of the vector allocator.
virtual void copy(SG::auxid_t auxid, SG::AuxVectorData &dst, size_t dst_index, const SG::AuxVectorData &src, size_t src_index, size_t n) const override
Copy elements from one location to another.
::TClass * m_class
The type that this factory operates on.
virtual void copyForOutput(SG::auxid_t auxid, SG::AuxVectorData &dst, size_t dst_index, const SG::AuxVectorData &src, size_t src_index, size_t n) const override
Copy one element from one location to another.
virtual size_t getEltSize() const override
Size of the elements inside the vector type.
virtual ~TAuxVectorFactory()
Destructor.
TAuxVectorFactory & operator=(const TAuxVectorFactory &)=delete
virtual void swap(SG::auxid_t auxid, SG::AuxVectorData &a, size_t aindex, SG::AuxVectorData &b, size_t bindex, size_t n) const override
Swap the payload of two ranges of elements in memory.
virtual const std::type_info * tiVec() const override
Type info of the vector type handled by the factory object.
TAuxVectorFactory(const TAuxVectorFactory &)=delete
virtual std::unique_ptr< SG::IAuxTypeVector > create(SG::auxid_t auxid, size_t size, size_t capacity, bool isLinked) const override
Create a new vector in memory with the requested size and capacity.
TAuxVectorFactory(::TClass *cl)
Constructor, setting up the object based on a dictionary.
virtual std::unique_ptr< SG::IAuxTypeVector > createFromData(SG::auxid_t auxid, void *data, SG::IAuxTypeVector *linkedVector, bool isPacked, bool ownFlag, bool isLinked) const override
Create a vector object of this type from a data blob.
::TVirtualCollectionProxy * m_proxy
ROOT's description of the vector type.
RootUtils::TSMethodCall m_assign ATLAS_THREAD_SAFE
Assignment operator.
virtual std::string tiAllocName() const override
Return the (demangled) name of the vector allocator.
virtual bool isDynamic() const override
Type of the factory.
size_t auxid_t
Identifier for a particular aux data item.
Definition AuxTypes.h:27
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.