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>
Classes | |
class | BufferNBytesFunctor |
Retrieves the names and sizes (in bytes) of the buffers used in the builder and its contents. More... | |
class | ClearContentsFunctor |
Discards the accumulated tags and index, and clears the builder contents. More... | |
class | ContentsFormFunctor |
Generates a unique description of the builder and its contents in the form of a JSON-like string. More... | |
class | SetIdFunctor |
Assigns a unique ID to each node. More... | |
class | ToBufferFunctor |
Copies and concatenates the accumulated data in the builder buffers to user-defined pointers if the given node name matches with any one of the nodes associated with the builder; otherwise, it searches the builder contents to locate a matching node. More... | |
class | ToBuffersFunctor |
Copies and concatenates all the accumulated data in each of the buffers of the builder and its contents to user-defined pointers. More... | |
class | ToCharBuffersFunctor |
Copies and concatenates all the accumulated data in the builder to a map of user-allocated buffers. More... | |
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 AWKWARD_LAYOUTBUILDER_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_content () 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 |
void | clear () noexcept |
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 |
void | to_buffers (std::map< std::string, void * > &buffers) const noexcept |
void | to_buffer (void *buffer, const char *name) const noexcept |
void | to_char_buffers (std::map< std::string, uint8_t * > &buffers) const noexcept |
std::string | form () const noexcept |
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 AWKWARD_LAYOUTBUILDER_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 |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Checks for validity and consistency.
|
inlinenoexcept |
Current length of the tags
buffer.
|
inlinenoexcept |
Parameters for the builder form.
|
inlinenoexcept |
|
inlinenoexcept |
Sets the form parameters.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |