Awkward Array: Union< TAGS, INDEX, BUILDERS > Class Template Reference

Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Union< TAGS, INDEX, BUILDERS > Class Template Reference

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.

## Detailed Description

template<typename TAGS, typename INDEX, typename... BUILDERS>
class awkward::LayoutBuilder::Union< TAGS, INDEX, BUILDERS >

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.

Template Parameters

  TAGS | The type of `tags` buffer.
  INDEX | The type of `index` buffer.
  BUILDERS | The types of builder contents.

## Member Typedef Documentation

## ◆ Contents

using Contents = typename std::tuple<BUILDERS...>

## ◆ ContentType

using ContentType = std::tuple_element_t<I, Contents>

## Constructor & Destructor Documentation

## ◆ Union() [1/2]

Union | ( |  | ) |
| inline

Creates a new Union layout builder by allocating new tags and index buffers, using `default_options` for initializing the buffer.

## ◆ Union() [2/2]

Union | ( | const awkward::BuilderOptions & | options | ) |
| inline

Creates a new Union layout builder by allocating new tags and index buffers, taking `options` from `BuilderOptions` for initializing the buffer.

Parameters

  options | Initial size configuration of a buffer.

## Member Function Documentation

## ◆ append_index()

ContentType< TAG > & append_index | ( |  | ) |
| 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.

## ◆ buffer_nbytes()

void buffer_nbytes | ( | std::map< std::string, size_t > & | names_nbytes | ) | const
| inlinenoexcept

Retrieves the names and sizes (in bytes) of the buffers used in the builder and its contents.

## ◆ clear()

void clear | ( |  | ) |
| inlinenoexcept

Discards the accumulated tags and index, and clears the builder contents.

Also, resets the last valid index array to `-1`.

## ◆ content()

ContentType< I > & content | ( |  | ) |
| inlinenoexcept

## ◆ form()

std::string form | ( |  | ) | const
| inlinenoexcept

Generates a unique description of the builder and its contents in the form of a JSON-like string.

## ◆ is_valid()

bool is_valid | ( | std::string & | error | ) | const
| inlinenoexcept

Checks for validity and consistency.

## ◆ length()

size_t length | ( |  | ) | const
| inlinenoexcept

Current length of the `tags` buffer.

## ◆ parameters()

const std::string & parameters | ( |  | ) | const
| inlinenoexcept

Parameters for the builder form.

## ◆ set_id()

void set_id | ( | size_t & | id | ) |
| inlinenoexcept

Assigns a unique ID to each node.

## ◆ set_parameters()

void set_parameters | ( | std::string | parameter | ) |
| inlinenoexcept

Sets the form parameters.

## ◆ to_buffers()

void to_buffers | ( | std::map< std::string, void * > & | buffers | ) | const
| 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.

## ◆ to_char_buffers()

void to_char_buffers | ( | std::map< std::string, uint8_t * > & | buffers | ) | const
| 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

The documentation for this class was generated from the following file:

- src/awkward/_v2/cpp-headers/awkward/LayoutBuilder.h