10#include "vecmem/containers/data/buffer_type.hpp"
11#include "vecmem/edm/details/schema_traits.hpp"
12#include "vecmem/edm/schema.hpp"
13#include "vecmem/edm/view.hpp"
14#include "vecmem/memory/memory_resource.hpp"
15#include "vecmem/memory/unique_ptr.hpp"
16#include "vecmem/utils/types.hpp"
167 std::is_trivially_destructible<typename VARTYPES::type>...>::value,
168 "Unsupported variable type");
169 static_assert(std::conjunction<std::is_trivially_assignable<
170 std::add_lvalue_reference_t<typename VARTYPES::type>,
171 typename VARTYPES::type>...>::value,
172 "Unsupported variable type");
217 template <
typename SIZE_TYPE = std::size_t,
218 std::enable_if_t<std::is_integral<SIZE_TYPE>::value &&
219 std::is_unsigned<SIZE_TYPE>::value,
222 const std::vector<SIZE_TYPE>&
capacities, memory_resource&
mr,
223 memory_resource*
host_mr =
nullptr,
229 VECMEM_HOST
void setup_fixed(
const std::vector<SIZE_TYPE>&
capacities,
230 memory_resource&
mr, memory_resource*
host_mr,
231 std::index_sequence<INDICES...>);
234 VECMEM_HOST
void setup_resizable(
const std::vector<SIZE_TYPE>&
capacities,
237 std::index_sequence<INDICES...>);
271#include "vecmem/edm/impl/buffer.ipp"
schema< VARTYPES... > schema_type
The schema describing the buffer's payload.
Definition buffer.hpp:176
buffer()=default
Default constructor.
buffer(buffer &&)=default
Move constructor.
unique_alloc_ptr< char[]> memory_type
Type holding on to the memory managed by this object.
Definition buffer.hpp:182
buffer & operator=(buffer &&)=default
Move assignment operator.
typename view_type::size_type size_type
Size type used for the container.
Definition buffer.hpp:180
Technical base type for buffer<schema<VARTYPES...>>
Definition buffer.hpp:28
Technical base type for view<schema<VARTYPES...>>
Definition view.hpp:28
buffer_type
"Overall type" for a buffer object
Definition buffer_type.hpp:13
@ fixed_size
The buffer has a fixed number of elements.
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16
std::vector< T, vecmem::polymorphic_allocator< T > > vector
Alias type for vectors with our polymorphic allocator.
Definition vector.hpp:35
VECMEM_HOST data::vector_view< T > get_data(array< T, N > &a)
Helper function creating a vecmem::data::vector_view object.
Definition array.ipp:217
Meta type describing the "schema" of an SoA container.
Definition schema.hpp:46