10#include "vecmem/edm/data.hpp"
11#include "vecmem/edm/details/host_traits.hpp"
12#include "vecmem/edm/details/schema_traits.hpp"
13#include "vecmem/edm/proxy.hpp"
14#include "vecmem/edm/schema.hpp"
15#include "vecmem/memory/memory_resource.hpp"
16#include "vecmem/utils/types.hpp"
27template <
typename T,
template <
typename>
class I>
49 std::tuple<typename details::host_type<VARTYPES>::type...>;
56 details::proxy_access::non_constant,
57 details::proxy_type::reference>>;
61 details::proxy_access::constant, details::proxy_type::reference>>;
65 details::proxy_access::non_constant,
66 details::proxy_type::standalone>>;
73 explicit host(memory_resource& resource);
93 template <std::
size_t INDEX>
97 template <std::
size_t INDEX>
150 memory_resource& resource()
const;
158 std::reference_wrapper<memory_resource> m_resource;
174 memory_resource* resource =
nullptr);
186 memory_resource* resource =
nullptr);
191#include "vecmem/edm/impl/host.ipp"
Technical base type for data<schema<VARTYPES...>>
Definition data.hpp:25
schema< VARTYPES... > schema_type
The schema describing the host's payload.
Definition host.hpp:44
INTERFACE< T > interface_type
The type of the interface used for the proxy objects.
Definition host.hpp:52
interface_type< proxy< schema_type, details::proxy_domain::host, details::proxy_access::non_constant, details::proxy_type::standalone > > object_type
Type type of standalone proxy objects for the container.
Definition host.hpp:66
std::tuple< typename details::host_type< VARTYPES >::type... > tuple_type
The tuple type holding all of the the individual variable vectors.
Definition host.hpp:49
interface_type< proxy< schema_type, details::proxy_domain::host, details::proxy_access::non_constant, details::proxy_type::reference > > proxy_type
The type of the (non-const) proxy objects for the container elements.
Definition host.hpp:57
interface_type< proxy< schema_type, details::proxy_domain::host, details::proxy_access::constant, details::proxy_type::reference > > const_proxy_type
The type of the (const) proxy objects for the container elements.
Definition host.hpp:61
std::size_t size_type
Size type used for the container.
Definition host.hpp:46
Technical base type for host<schema<VARTYPES...>,INTERFACE>
Definition host.hpp:28
Technical base type for proxy<schema<VARTYPES...>,PDOMAIN,PACCESS,PTYPE>
Definition proxy.hpp:21
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16
VECMEM_HOST_AND_DEVICE constexpr const auto & get(const tuple< Ts... > &t) noexcept
Get a constant element out of a tuple.
Definition tuple.ipp:58
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
Definition host_traits.hpp:56
Meta type describing the "schema" of an SoA container.
Definition schema.hpp:46