24 #include "openPMD/RecordComponent.hpp"
46 Span(
T *ptr,
size_t size) : m_ptr(ptr), m_size(size)
51 using reverse_iterator = std::reverse_iterator<iterator>;
58 inline T *data()
const
63 inline T &operator[](
size_t i)
const
68 inline iterator begin()
const
72 inline iterator end()
const
74 return data() + size();
76 inline reverse_iterator rbegin()
const
79 return reverse_iterator{data() + size()};
81 inline reverse_iterator rend()
const
83 return reverse_iterator{data()};
108 : m_param(std::move(param))
110 , m_recordComponent(std::move(recordComponent))
112 m_param.update =
true;
123 if (m_param.out->backendManagedBuffer)
126 m_recordComponent.IOHandler()->
enqueue(
127 IOTask(&m_recordComponent, m_param));
128 m_recordComponent.IOHandler()->
flush(internal::defaultFlushParams);
130 return Span<T>{
static_cast<T *
>(m_param.out->ptr), m_size};
std::future< void > flush(internal::FlushParams const &)
Process operations in queue according to FIFO.
Definition: AbstractIOHandler.cpp:28
virtual void enqueue(IOTask const &iotask)
Add provided task to queue according to FIFO.
Definition: AbstractIOHandler.hpp:232
A view into a buffer that might be reallocated at some points and thus has changing base pointers ove...
Definition: Span.hpp:97
Span< T > currentBuffer()
Acquire the underlying buffer at its current position in memory.
Definition: Span.hpp:121
Self-contained description of a single IO operation.
Definition: IOTask.hpp:670
Definition: RecordComponent.hpp:120
Subset of C++20 std::span class template.
Definition: Span.hpp:38
Public definitions of openPMD-api.
Definition: Date.cpp:29
Definition: IOTask.hpp:471