ATLAS Offline Software
Loading...
Searching...
No Matches
JaggedVecVectorFactory.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 */
12
13
14#ifndef ATHCONTAINERS_JAGGEDVECVECTORFACTORY_H
15#define ATHCONTAINERS_JAGGEDVECVECTORFACTORY_H
16
17
20
21
22namespace SG {
23
24
31template <class T, class ALLOC = AuxAllocator_t<JaggedVecElt<T> > >
33 : public AuxTypeVectorFactoryImpl<JaggedVecElt<T>, ALLOC>
34{
35public:
37 using Shift = typename Elt::Shift;
38 using index_type = typename Elt::index_type;
39
43
44
53 virtual
54 std::unique_ptr<IAuxTypeVector> create (SG::auxid_t auxid,
55 size_t size,
56 size_t capacity,
57 bool isLinked) const override;
58
59
75 virtual
76 std::unique_ptr<IAuxTypeVector> createFromData (SG::auxid_t auxid,
77 void* data,
78 IAuxTypeVector* linkedVector,
79 bool isPacked,
80 bool ownFlag,
81 bool isLinked) const override;
82
83
95 virtual void copy (SG::auxid_t auxid,
96 AuxVectorData& dst, size_t dst_index,
97 const AuxVectorData& src, size_t src_index,
98 size_t n) const override;
99
100
113 virtual void copyForOutput (SG::auxid_t auxid,
114 AuxVectorData& dst, size_t dst_index,
115 const AuxVectorData& src, size_t src_index,
116 size_t n) const override;
117
118
119
132 virtual void swap (SG::auxid_t auxid,
133 AuxVectorData& a, size_t aindex,
134 AuxVectorData& b, size_t bindex,
135 size_t n) const override;
136
137
145 virtual void clear (SG::auxid_t auxid,
146 AuxVectorData& dst, size_t dst_index,
147 size_t n) const override;
148
149
150private:
164 AuxVectorData& dst, size_t dst_index,
165 const AuxVectorData& src, size_t src_index,
166 size_t n, bool for_output) const;
167};
168
169
170
176template <class T, class ALLOC>
185
186
187} // namespace SG
188
189
191
192
193#endif // not ATHCONTAINERS_JAGGEDVECVECTORFACTORY_H
Factory object that creates vectors using AuxTypeVector.
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Implementation of IAuxTypeVector for JaggedVecElt types.
static Double_t a
Factory object that creates vectors using AuxTypeVector.
Factory object that creates vectors using AuxTypeVector.
Manage lookup of vectors of auxiliary data.
Abstract interface for manipulating vectors of arbitrary types.
uint32_t index_type
Type for the indices.
Describe one element of a jagged vector.
Factory objects that creates vectors for packed links.
virtual void swap(SG::auxid_t auxid, AuxVectorData &a, size_t aindex, AuxVectorData &b, size_t bindex, size_t n) const override
Swap elements between vectors.
typename Elt::index_type index_type
virtual void clear(SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, size_t n) const override
Clear a range of elements within a vector.
typename AuxTypeVector_t::vector_value_type vector_value_type
JaggedVecVector< T, ALLOC > AuxTypeVector_t
virtual void copyForOutput(SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const override
Copy elements between vectors, possibly applying thinning.
void copyImpl(SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n, bool for_output) const
Copy elements between vectors.
AuxTypeVectorFactoryImpl< Elt, ALLOC > Base
virtual std::unique_ptr< IAuxTypeVector > create(SG::auxid_t auxid, size_t size, size_t capacity, bool isLinked) const override
Create a vector object of this type.
virtual void copy(SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const override
Copy elements between vectors.
virtual std::unique_ptr< IAuxTypeVector > createFromData(SG::auxid_t auxid, void *data, IAuxTypeVector *linkedVector, bool isPacked, bool ownFlag, bool isLinked) const override
Create a vector object of this type from a data blob.
Forward declaration.
JaggedVecVectorT< JaggedVecVectorHolder< T, ALLOC > > JaggedVecVector
size_t auxid_t
Identifier for a particular aux data item.
Definition AuxTypes.h:27
Helper to shift indices.