Builds a UnionArray which represents data drawn from an ordered list of contents, which can have different types, using tags, which is an array of integers indicating which content each array element draws from and index, which is an array of integers indicating which element from the content to draw from. More...
#include <LayoutBuilder.h>
Public Types | |
using | Contents = typename std::tuple< BUILDERS... > |
template<std::size_t I> | |
using | ContentType = std::tuple_element_t< I, Contents > |
Public Member Functions | |
Union () | |
Creates a new Union layout builder by allocating new tags and index buffers, using default_options for initializing the buffer. | |
Union (const awkward::BuilderOptions &options) | |
Creates a new Union layout builder by allocating new tags and index buffers, taking options from BuilderOptions for initializing the buffer. | |
template<std::size_t I> | |
ContentType< I > & | content () noexcept |
template<std::size_t TAG> | |
ContentType< TAG > & | append_index () noexcept |
Inserts the current tag in the tags buffer and the next index in the index buffer and returns the reference to the content of the current builder. | |
const std::string & | parameters () const noexcept |
Parameters for the builder form. | |
void | set_parameters (std::string parameter) noexcept |
Sets the form parameters. | |
void | set_id (size_t &id) noexcept |
Assigns a unique ID to each node. | |
void | clear () noexcept |
Discards the accumulated tags and index, and clears the builder contents. | |
size_t | length () const noexcept |
Current length of the tags buffer. | |
bool | is_valid (std::string &error) const noexcept |
Checks for validity and consistency. | |
void | buffer_nbytes (std::map< std::string, size_t > &names_nbytes) const noexcept |
Retrieves the names and sizes (in bytes) of the buffers used in the builder and its contents. | |
void | to_buffers (std::map< std::string, void * > &buffers) const noexcept |
Copies and concatenates all the accumulated data in each of the buffers of the builder and its contents to user-defined pointers. | |
void | to_char_buffers (std::map< std::string, uint8_t * > &buffers) const noexcept |
Copies and concatenates all the accumulated data in the builder to a map of user-allocated buffers. | |
std::string | form () const noexcept |
Generates a unique description of the builder and its contents in the form of a JSON-like string. | |
Builds a UnionArray which represents data drawn from an ordered list of contents, which can have different types, using tags, which is an array of integers indicating which content each array element draws from and index, which is an array of integers indicating which element from the content to draw from.
The index values can be 64-bit signed integers int64
, 32-bit signed integers int32
or 32-bit unsigned integers uint32
and the tags values can be 8-bit signed integers.
TAGS | The type of tags buffer. |
INDEX | The type of index buffer. |
BUILDERS | The types of builder contents. |
using Contents = typename std::tuple<BUILDERS...> |
using ContentType = std::tuple_element_t<I, Contents> |
|
inline |
Creates a new Union layout builder by allocating new tags and index buffers, using default_options
for initializing the buffer.
|
inline |
Creates a new Union layout builder by allocating new tags and index buffers, taking options
from BuilderOptions
for initializing the buffer.
options | Initial size configuration of a buffer. |
|
inlinenoexcept |
Inserts the current tag in the tags
buffer and the next index in the index
buffer and returns the reference to the content of the current builder.
|
inlinenoexcept |
Retrieves the names and sizes (in bytes) of the buffers used in the builder and its contents.
|
inlinenoexcept |
Discards the accumulated tags and index, and clears the builder contents.
Also, resets the last valid index array to -1
.
|
inlinenoexcept |
|
inlinenoexcept |
Generates a unique description of the builder and its contents in the form of a JSON-like string.
|
inlinenoexcept |
Checks for validity and consistency.
|
inlinenoexcept |
Current length of the tags
buffer.
|
inlinenoexcept |
Parameters for the builder form.
|
inlinenoexcept |
Assigns a unique ID to each node.
|
inlinenoexcept |
Sets the form parameters.
|
inlinenoexcept |
Copies and concatenates all the accumulated data in each of the buffers of the builder and its contents to user-defined pointers.
Used to fill the buffers map by allocating it with user-defined pointers using the same names and sizes (in bytes) obtained from buffer_nbytes.
|
inlinenoexcept |
Copies and concatenates all the accumulated data in the builder to a map of user-allocated buffers.
The map keys and the buffer sizes are obtained from buffer_nbytes