sparrow-ipc 0.3.0
Loading...
Searching...
No Matches
deserialize_utils.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <optional>
5#include <span>
6#include <unordered_set>
7#include <utility>
8#include <variant>
9
10#include <sparrow/buffer/buffer.hpp>
11#include <sparrow/c_interface.hpp>
12
13#include "Message_generated.h"
14#include "Schema_generated.h"
15
17{
33 [[nodiscard]] std::pair<std::uint8_t*, int64_t>
34 get_bitmap_pointer_and_null_count(std::span<const uint8_t> validity_buffer_span, const int64_t length);
35
49 [[nodiscard]] std::span<const uint8_t> get_buffer(
50 const org::apache::arrow::flatbuf::RecordBatch& record_batch,
51 std::span<const uint8_t> body,
52 size_t& buffer_index
53 );
54
70 [[nodiscard]] std::variant<sparrow::buffer<std::uint8_t>, std::span<const std::uint8_t>>
72 std::span<const uint8_t> buffer_span,
73 const org::apache::arrow::flatbuf::BodyCompression* compression
74 );
75
82 [[nodiscard]] std::optional<std::unordered_set<sparrow::ArrowFlag>>
83 get_sparrow_flags(const org::apache::arrow::flatbuf::Field& field);
84
93 template <typename T>
94 inline std::string get_fb_name(const T* obj, const std::string& default_val = "")
95 {
96 if (!obj)
97 {
98 return default_val;
99 }
100
101 auto name = obj->name();
102 return name ? name->str() : default_val;
103 }
104}
std::span< const uint8_t > get_buffer(const org::apache::arrow::flatbuf::RecordBatch &record_batch, std::span< const uint8_t > body, size_t &buffer_index)
Extracts a buffer from a RecordBatch's body.
std::string get_fb_name(const T *obj, const std::string &default_val="")
Safely extracts a string from a FlatBuffers object that has a name() method.
std::variant< sparrow::buffer< std::uint8_t >, std::span< const std::uint8_t > > get_decompressed_buffer(std::span< const uint8_t > buffer_span, const org::apache::arrow::flatbuf::BodyCompression *compression)
Retrieves a decompressed buffer or a view of the original buffer.
std::pair< std::uint8_t *, int64_t > get_bitmap_pointer_and_null_count(std::span< const uint8_t > validity_buffer_span, const int64_t length)
Extracts bitmap pointer and null count from a validity buffer span.
std::optional< std::unordered_set< sparrow::ArrowFlag > > get_sparrow_flags(const org::apache::arrow::flatbuf::Field &field)
Extract sparrow flags from FlatBuffers Field.