IPC 扩展参考#
C API#
- 组 Nanoarrow IPC 扩展
除非另有说明,否则对象不是线程安全的,客户端应注意序列化对方法的访问。
由于此库旨在被集成(vendored),它提供了完整的类型定义,并鼓励客户端在方便时使用栈分配或静态分配。
宏定义
-
NANOARROW_IPC_FEATURE_DICTIONARY_REPLACEMENT#
用于表示流使用字典替换的特性标志。
-
NANOARROW_IPC_FEATURE_COMPRESSED_BODY#
用于表示流使用压缩的特性标志。
类型定义
-
typedef ArrowErrorCode (*ArrowIpcDecompressFunction)(struct ArrowBufferView src, uint8_t *dst, int64_t dst_size, struct ArrowError *error)#
一个自包含的解压函数。
对于最常见的压缩类型 ZSTD,此函数足以捕捉 Arrow IPC 所需的解压类型(即,解压前已记录未压缩大小的解压)。对于其他压缩类型,实现一个完整的 ArrowIpcDecompressor 可能更高效,因为它允许在多次解码之间保持状态/分配。
枚举
-
enum ArrowIpcMetadataVersion#
元数据版本枚举器。
值
-
enumerator NANOARROW_IPC_METADATA_VERSION_V1#
-
enumerator NANOARROW_IPC_METADATA_VERSION_V2#
-
enumerator NANOARROW_IPC_METADATA_VERSION_V3#
-
enumerator NANOARROW_IPC_METADATA_VERSION_V4#
-
enumerator NANOARROW_IPC_METADATA_VERSION_V5#
-
enumerator NANOARROW_IPC_METADATA_VERSION_V1#
-
enum ArrowIpcMessageType#
消息类型枚举器。
值
-
enumerator NANOARROW_IPC_MESSAGE_TYPE_UNINITIALIZED#
-
enumerator NANOARROW_IPC_MESSAGE_TYPE_SCHEMA#
-
enumerator NANOARROW_IPC_MESSAGE_TYPE_DICTIONARY_BATCH#
-
enumerator NANOARROW_IPC_MESSAGE_TYPE_RECORD_BATCH#
-
enumerator NANOARROW_IPC_MESSAGE_TYPE_TENSOR#
-
enumerator NANOARROW_IPC_MESSAGE_TYPE_SPARSE_TENSOR#
-
enumerator NANOARROW_IPC_MESSAGE_TYPE_UNINITIALIZED#
函数
- NANOARROW_DLL ArrowErrorCode ArrowIpcCheckRuntime (struct ArrowError *error)
检查 nanoarrow 运行时,确保运行版本与构建版本匹配。
-
static inline enum ArrowIpcEndianness ArrowIpcSystemEndianness(void)#
获取当前运行时的字节序。
- NANOARROW_DLL ArrowErrorCode ArrowIpcSharedBufferInit (struct ArrowIpcSharedBuffer *shared, struct ArrowBuffer *src)
初始化 ArrowIpcSharedBuffer 结构体的内容。
如果返回 NANOARROW_OK,则 ArrowIpcSharedBuffer 获得 src 的所有权。
- NANOARROW_DLL void ArrowIpcSharedBufferReset (struct ArrowIpcSharedBuffer *shared)
释放调用者持有的共享缓冲区的副本。
完成后,调用者必须使用此函数释放其自己持有的共享数据副本。原始缓冲区将继续存在,直到所有引用它的 ArrowArray 对象也都被释放。
- NANOARROW_DLL int ArrowIpcSharedBufferIsThreadSafe (void)
检查共享缓冲区的线程安全性。
线程安全的共享缓冲区需要 C11 和 stdatomic.h 头文件。如果两者中任意一个不可用,共享缓冲区仍然可用,但生成的数组不能传递给其他线程进行释放。
- NANOARROW_DLL ArrowIpcDecompressFunction ArrowIpcGetZstdDecompressionFunction (void)
获取 ZSTD 的解压函数。
如果 nanoarrow 编译时未启用 NANOARROW_IPC_WITH_ZSTD,则返回结果为 NULL。
- NANOARROW_DLL ArrowErrorCode ArrowIpcSerialDecompressor (struct ArrowIpcDecompressor *decompressor)
一个串行执行解压操作的 ArrowIpcDecompressor 实现。
- NANOARROW_DLL ArrowErrorCode ArrowIpcSerialDecompressorSetFunction (struct ArrowIpcDecompressor *decompressor, enum ArrowIpcCompressionType compression_type, ArrowIpcDecompressFunction decompress_function)
覆盖用于特定压缩类型的 ArrowIpcDecompressFunction。
当使用功能未知或有限的 nanoarrow 版本时,此函数可用于注入对特定类型解压的支持。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderInit (struct ArrowIpcDecoder *decoder)
初始化一个解码器。
- NANOARROW_DLL void ArrowIpcDecoderReset (struct ArrowIpcDecoder *decoder)
释放附加到解码器的所有资源。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderSetDecompressor (struct ArrowIpcDecoder *decoder, struct ArrowIpcDecompressor *decompressor)
设置此解码器使用的解压器实现。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderPeekHeader (struct ArrowIpcDecoder *decoder, struct ArrowBufferView data, int32_t *prefix_size_bytes, struct ArrowError *error)
窥探消息头。
Arrow IPC 消息的前 8 个字节是 0xFFFFFFFF,后跟一个以小端序表示的 32 位整数,代表头部的大小。ArrowIpcDecoderPeekHeader() 读取这些字节,如果 data 中剩余的字节不足以读取整个头部消息,则返回 ESPIPE;如果前 8 个字节无效,则返回 EINVAL;如果已到达 Arrow 流结束指示符,则返回 ENODATA;否则返回 NANOARROW_OK。
1.0 之前的消息没有以 0xFFFFFFFF 为前缀。对于这些消息,prefix_size_bytes 将被置为 4;否则,prefix_size_bytes 将被置为 8。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderVerifyHeader (struct ArrowIpcDecoder *decoder, struct ArrowBufferView data, struct ArrowError *error)
验证消息头。
运行 ArrowIpcDecoderPeekHeader() 以确保 data 足够大,并额外运行 flatbuffer 验证以确保解码数据不会访问由 data 指定的缓冲区之外的内存。ArrowIpcDecoderVerifyHeader() 还会设置 decoder.header_size_bytes、decoder.body_size_bytes、decoder.metadata_version 和 decoder.message_type。
返回码与 ArrowIpcDecoderPeekHeader() 相同,并且如果 flatbuffer 验证失败,还会返回 EINVAL。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderDecodeHeader (struct ArrowIpcDecoder *decoder, struct ArrowBufferView data, struct ArrowError *error)
解码消息头。
运行 ArrowIpcDecoderPeekHeader() 以确保 data 足够大,并解码消息头的内容。如果 data 包含 schema 消息,则会设置 decoder.endianness 和 decoder.feature_flags,并且可以使用 ArrowIpcDecoderDecodeSchema() 获取解码后的 schema。如果 data 包含记录批次消息,则会设置 decoder.codec,成功调用后可以接着调用 ArrowIpcDecoderDecodeArray()。
在几乎所有情况下,都应在此调用之前调用 ArrowIpcDecoderVerifyHeader(),以确保解码不会访问指定缓冲区之外的数据。
如果消息内容无法解码,则返回 EINVAL;如果消息内容使用了此库不支持的特性,则返回 ENOTSUP。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderDecodeSchema (struct ArrowIpcDecoder *decoder, struct ArrowSchema *out, struct ArrowError *error)
解码一个 ArrowSchema。
在成功调用 ArrowIpcDecoderDecodeHeader() 之后,获取一个 ArrowSchema。如果返回 NANOARROW_OK,调用者负责释放该 schema。
如果解码器刚刚解码的不是一个 schema 消息,则返回 EINVAL;否则返回 NANOARROW_OK。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderSetSchema (struct ArrowIpcDecoder *decoder, struct ArrowSchema *schema, struct ArrowError *error)
设置用于解码未来记录批次消息的 ArrowSchema。
为解码器准备好处理此类型的未来记录批次消息。如果返回 NANOARROW_OK,解码器将获得 schema 的所有权。请注意,在解码 Schema 消息后,您必须显式调用此函数(即,解码器不会假设最后解码的 schema 消息适用于未来的记录批次消息)。
如果 schema 验证失败,则返回 EINVAL;否则返回 NANOARROW_OK。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderSetEndianness (struct ArrowIpcDecoder *decoder, enum ArrowIpcEndianness endianness)
设置用于解码未来记录批次消息的字节序。
为解码器准备好处理具有指定字节序的未来记录批次消息。请注意,在解码 Schema 消息后,您必须显式调用此函数(即,解码器不会假设最后解码的 schema 消息适用于未来的记录批次消息)。
成功时返回 NANOARROW_OK。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderDecodeArrayView (struct ArrowIpcDecoder *decoder, struct ArrowBufferView body, int64_t i, struct ArrowArrayView **out, struct ArrowError *error)
解码一个 ArrowArrayView。
在成功调用 ArrowIpcDecoderDecodeHeader() 之后,将 body 的内容反序列化到一个内部管理的 ArrowArrayView 并返回它。请注意,如果任何列包含嵌套类型,字段索引不等于列索引。使用 -1 的值将整个数组解码为一个结构体。指向的 ArrowArrayView 由 ArrowIpcDecoder 所有,不得释放。
对于与系统字节序匹配且不使用压缩的流,此操作不会执行任何堆分配;但是,返回的 ArrowArrayView 所引用的缓冲区仅在 body 引用的缓冲区保持有效期间有效。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderDecodeArray (struct ArrowIpcDecoder *decoder, struct ArrowBufferView body, int64_t i, struct ArrowArray *out, enum ArrowValidationLevel validation_level, struct ArrowError *error)
解码一个 ArrowArray。
在成功调用 ArrowIpcDecoderDecodeHeader() 之后,根据消息体和字段索引组装一个 ArrowArray。请注意,如果任何列包含嵌套类型,字段索引不等于列索引。使用 -1 的值将整个数组解码为一个结构体。如果返回 NANOARROW_OK,调用者负责释放该数组。
如果解码器刚刚解码的不是一个记录批次消息,则返回 EINVAL;如果消息使用了此库不支持的特性,则返回 ENOTSUP;否则返回 NANOARROW_OK。
- NANOARROW_DLL ArrowErrorCode ArrowIpcDecoderDecodeArrayFromShared (struct ArrowIpcDecoder *decoder, struct ArrowIpcSharedBuffer *shared, int64_t i, struct ArrowArray *out, enum ArrowValidationLevel validation_level, struct ArrowError *error)
从一个拥有的缓冲区解码 ArrowArray。
此实现利用了它可以避免复制单个缓冲区的优势。在所有情况下,调用者都必须在一个或多个对 ArrowIpcDecoderDecodeArrayFromShared() 的调用之后调用 ArrowIpcSharedBufferReset() 来处理 body。如果 ArrowIpcSharedBufferIsThreadSafe() 返回 0,则 out 决不能由另一个线程释放。
- NANOARROW_DLL void ArrowIpcInputStreamMove (struct ArrowIpcInputStream *src, struct ArrowIpcInputStream *dst)
转移 ArrowIpcInputStream 的所有权。
- NANOARROW_DLL ArrowErrorCode ArrowIpcInputStreamInitBuffer (struct ArrowIpcInputStream *stream, struct ArrowBuffer *input)
从一个 ArrowBuffer 创建一个输入流。
该流将获得缓冲区的所有权,并从中读取字节。
- NANOARROW_DLL ArrowErrorCode ArrowIpcInputStreamInitFile (struct ArrowIpcInputStream *stream, void *file_ptr, int close_on_release)
从一个 C FILE* 指针创建一个输入流。
请注意,如果 file_ptr 关闭失败,ArrowIpcInputStream 没有机制来传达错误。如果需要此行为,请将 false 传递给 close_on_release,并独立于流处理文件的关闭。
- NANOARROW_DLL ArrowErrorCode ArrowIpcArrayStreamReaderInit (struct ArrowArrayStream *out, struct ArrowIpcInputStream *input_stream, struct ArrowIpcArrayStreamReaderOptions *options)
从一个字节输入流初始化一个 ArrowArrayStream。
字节流必须以一个 Schema 消息开始,后面跟着零个或多个 RecordBatch 消息,如 Arrow IPC 流格式规范中所述。成功时返回 NANOARROW_OK。如果返回 NANOARROW_OK,ArrowArrayStream 将获得 input_stream 的所有权,并且调用者负责释放 out。
- NANOARROW_DLL ArrowErrorCode ArrowIpcEncoderInit (struct ArrowIpcEncoder *encoder)
初始化一个编码器。
如果返回 NANOARROW_OK,调用者必须调用 ArrowIpcEncoderReset() 来释放此函数分配的资源。
- NANOARROW_DLL void ArrowIpcEncoderReset (struct ArrowIpcEncoder *encoder)
释放附加到编码器的所有资源。
- NANOARROW_DLL ArrowErrorCode ArrowIpcEncoderFinalizeBuffer (struct ArrowIpcEncoder *encoder, char encapsulate, struct ArrowBuffer *out)
将最近编码的消息最终确定到一个缓冲区中。
如果指定,消息将被封装(前缀为连续标记和头部大小,并 0 填充到 8 字节的倍数)。
编码消息的字节将被附加到提供的缓冲区中。
- NANOARROW_DLL ArrowErrorCode ArrowIpcEncoderEncodeSchema (struct ArrowIpcEncoder *encoder, const struct ArrowSchema *schema, struct ArrowError *error)
编码一个 ArrowSchema。
如果分配失败,返回 ENOMEM;否则返回 NANOARROW_OK。
- NANOARROW_DLL ArrowErrorCode ArrowIpcEncoderEncodeSimpleRecordBatch (struct ArrowIpcEncoder *encoder, const struct ArrowArrayView *array_view, struct ArrowBuffer *body_buffer, struct ArrowError *error)
将一个结构体类型的 ArrayView 编码为 flatbuffer RecordBatch,并嵌入到一个 Message 中。
主体缓冲区被连接成一个连续的、已填充的 body_buffer。
如果分配失败,返回 ENOMEM;否则返回 NANOARROW_OK。
- NANOARROW_DLL void ArrowIpcOutputStreamMove (struct ArrowIpcOutputStream *src, struct ArrowIpcOutputStream *dst)
转移 ArrowIpcOutputStream 的所有权。
- NANOARROW_DLL ArrowErrorCode ArrowIpcOutputStreamInitBuffer (struct ArrowIpcOutputStream *stream, struct ArrowBuffer *output)
从一个 ArrowBuffer 创建一个输出流。
所有写入流的字节都将被附加到缓冲区。该流不获取缓冲区的所有权。
- NANOARROW_DLL ArrowErrorCode ArrowIpcOutputStreamInitFile (struct ArrowIpcOutputStream *stream, void *file_ptr, int close_on_release)
从一个 C FILE* 指针创建一个输出流。
请注意,如果 file_ptr 关闭失败,ArrowIpcOutputStream 没有机制来传达错误。如果需要此行为,请将 false 传递给 close_on_release,并独立于流处理文件的关闭。
- NANOARROW_DLL ArrowErrorCode ArrowIpcOutputStreamWrite (struct ArrowIpcOutputStream *stream, struct ArrowBufferView data, struct ArrowError *error)
向流中写入数据,直到全部写入或流发生错误时才停止重试。
- NANOARROW_DLL ArrowErrorCode ArrowIpcWriterInit (struct ArrowIpcWriter *writer, struct ArrowIpcOutputStream *output_stream)
从一个 ArrowArrayStream 初始化一个字节输出流。
成功时返回 NANOARROW_OK。如果返回 NANOARROW_OK,写入器将获得输出字节流的所有权,调用者负责通过调用 ArrowIpcWriterReset() 来释放写入器。
- NANOARROW_DLL void ArrowIpcWriterReset (struct ArrowIpcWriter *writer)
释放附加到写入器的所有资源。
- NANOARROW_DLL ArrowErrorCode ArrowIpcWriterWriteSchema (struct ArrowIpcWriter *writer, const struct ArrowSchema *in, struct ArrowError *error)
将一个 schema 写入输出字节流。
错误会从底层的编码器和输出字节流中传播上来。
- NANOARROW_DLL ArrowErrorCode ArrowIpcWriterWriteArrayView (struct ArrowIpcWriter *writer, const struct ArrowArrayView *in, struct ArrowError *error)
将一个数组视图写入输出字节流。
数组视图可以为 NULL,此时将写入 EOS。写入器不检查是否已写入 schema。
错误会从底层的编码器和输出字节流中传播上来,
- NANOARROW_DLL ArrowErrorCode ArrowIpcWriterWriteArrayStream (struct ArrowIpcWriter *writer, struct ArrowArrayStream *in, struct ArrowError *error)
将整个流(包括 EOS)写入输出字节流。
错误会从底层的编码器、数组流和输出字节流中传播上来。
-
ArrowErrorCode ArrowIpcWriterStartFile(struct ArrowIpcWriter *writer, struct ArrowError *error)#
开始写入一个 IPC 文件。
写入 Arrow IPC 的魔数,并设置写入器以跟踪已写入的块。
- NANOARROW_DLL ArrowErrorCode ArrowIpcWriterFinalizeFile (struct ArrowIpcWriter *writer, struct ArrowError *error)
完成写入一个 IPC 文件。
写入 IPC 文件的页脚、页脚大小和结束魔数。
- #include <nanoarrow_ipc.h>
一个表示引用计数缓冲区的结构,可以传递给 ArrowIpcDecoderDecodeArrayFromShared()。
-
struct ArrowIpcDecompressor#
- #include <nanoarrow_ipc.h>
一个用户可扩展的解压器。
ArrowIpcDecompressor 是在 ArrowIpcDecoder 中实现解压的底层对象。其结构使其可以由多线程实现支持;然而,这不是必需的,默认实现也没有实现这一点。一个解压器实现可以支持多种 ArrowIpcCompressionType。
公共成员
-
ArrowErrorCode (*decompress_add)(struct ArrowIpcDecompressor *decompressor, enum ArrowIpcCompressionType compression_type, struct ArrowBufferView src, uint8_t *dst, int64_t dst_size, struct ArrowError *error)#
将一个缓冲区加入解压队列。
在调用 decompress_add 之后,由 dst 和 dst_size 指向的值是未定义的,直到下一次 decompress_wait 调用返回 NANOARROW_OK。
-
ArrowErrorCode (*decompress_wait)(struct ArrowIpcDecompressor *decompressor, int64_t timeout_ms, struct ArrowError *error)#
等待任何未完成的 decompress_add 调用完成。
如果所有待处理的调用都已完成,则返回 NANOARROW_OK。如果并非所有剩余调用都已完成,则返回 ETIMEOUT。
-
void (*release)(struct ArrowIpcDecompressor *decompressor)#
释放解压器及其可能持有的任何资源。
释放回调的实现必须将 release 成员设置为 NULL。调用者在调用 decompress() 或 release() 之前必须检查 release 回调是否不为 NULL。
-
void *private_data#
特定于实现的不透明数据。
-
ArrowErrorCode (*decompress_add)(struct ArrowIpcDecompressor *decompressor, enum ArrowIpcCompressionType compression_type, struct ArrowBufferView src, uint8_t *dst, int64_t dst_size, struct ArrowError *error)#
-
struct ArrowIpcDecoder#
- #include <nanoarrow_ipc.h>
Arrow IPC 消息的解码器。
此结构旨在由调用者分配,使用 ArrowIpcDecoderInit() 初始化,并使用 ArrowIpcDecoderReset() 释放。这些字段不应由调用者修改,但可以在调用 ArrowIpcDecoderPeekHeader()、ArrowIpcDecoderVerifyHeader() 或 ArrowIpcDecoderDecodeHeader() 后读取。
公共成员
-
enum ArrowIpcMessageType message_type#
最后验证或解码的消息类型。
-
enum ArrowIpcMetadataVersion metadata_version#
当前 schema 消息指示的元数据版本。
-
enum ArrowIpcEndianness endianness#
当前 schema 消息指示的缓冲区字节序。
-
int32_t feature_flags#
当前 Schema 消息指示的所用 Arrow IPC 特性。
-
enum ArrowIpcCompressionType codec#
当前 RecordBatch 消息使用的压缩方式。
-
int32_t header_size_bytes#
当前头部消息中的字节数。
此值包括头部消息内容开始前的 8 个字节,以及为使头部消息大小成为 8 字节的倍数所需的任何填充字节。
-
int64_t body_size_bytes#
即将到来的主体消息中的字节数。
最后解码的页脚。
警告
此 API 当前仅公开用于集成测试;使用风险自负。
-
void *private_data#
由此库管理的私有资源。
-
enum ArrowIpcMessageType message_type#
-
struct ArrowIpcInputStream#
- #include <nanoarrow_ipc.h>
一个用户可扩展的输入数据源。
公共成员
-
ArrowErrorCode (*read)(struct ArrowIpcInputStream *stream, uint8_t *buf, int64_t buf_size_bytes, int64_t *size_read_out, struct ArrowError *error)#
从流中读取最多 buf_size_bytes 字节到 buf 中。
实际读取的字节数存放在 size_read_out 指向的值中。成功时返回 NANOARROW_OK。
-
void (*release)(struct ArrowIpcInputStream *stream)#
释放流及其可能持有的任何资源。
释放回调的实现必须将 release 成员设置为 NULL。调用者在调用 read() 或 release() 之前必须检查 release 回调是否不为 NULL。
-
void *private_data#
私有的、由实现定义的数据。
-
ArrowErrorCode (*read)(struct ArrowIpcInputStream *stream, uint8_t *buf, int64_t buf_size_bytes, int64_t *size_read_out, struct ArrowError *error)#
-
struct ArrowIpcArrayStreamReaderOptions#
- #include <nanoarrow_ipc.h>
ArrowIpcArrayStreamReaderInit() 的选项
公共成员
-
int64_t field_index#
要提取的字段索引。
默认为 -1(即读取所有字段)。请注意,此字段索引指的是子字段的扁平化树,不一定是列索引。
设置为非零值以在解码的数组之间共享消息体缓冲区。
在以下情况下,共享缓冲区是一个不错的选择:(1)使用内存映射 IO(因为文件中未被引用的部分通常不会加载到内存中)或(2)如果所有列的所有数据都将被引用。当只加载单个字段时,使用共享缓冲区可能没有优势。默认为 ArrowIpcSharedBufferIsThreadSafe() 的值。
-
int64_t field_index#
-
struct ArrowIpcEncoder#
- #include <nanoarrow_ipc.h>
Arrow IPC 消息的编码器。
此结构旨在由调用者分配,使用 ArrowIpcEncoderInit() 初始化,并使用 ArrowIpcEncoderReset() 释放。
公共成员
-
void *private_data#
由此库管理的私有资源。
-
void *private_data#
-
struct ArrowIpcOutputStream#
- #include <nanoarrow_ipc.h>
一个用户可扩展的输出数据接收器。
公共成员
-
ArrowErrorCode (*write)(struct ArrowIpcOutputStream *stream, const void *buf, int64_t buf_size_bytes, int64_t *size_written_out, struct ArrowError *error)#
从 buf 向流中写入最多 buf_size_bytes 字节。
实际写入的字节数存放在 size_read_out 指向的值中。成功时返回 NANOARROW_OK。
-
void (*release)(struct ArrowIpcOutputStream *stream)#
释放流及其可能持有的任何资源。
释放回调的实现必须将 release 成员设置为 NULL。调用者在调用 read() 或 release() 之前必须检查 release 回调是否不为 NULL。
-
void *private_data#
私有的、由实现定义的数据。
-
ArrowErrorCode (*write)(struct ArrowIpcOutputStream *stream, const void *buf, int64_t buf_size_bytes, int64_t *size_written_out, struct ArrowError *error)#
-
struct ArrowIpcWriter#
- #include <nanoarrow_ipc.h>
一个将 Schemas 和 ArrowArrays 编码为 IPC 字节流的流写入器。
此结构旨在由调用者分配,使用 ArrowIpcWriterInit() 初始化,并使用 ArrowIpcWriterReset() 释放。
公共成员
-
void *private_data#
由此库管理的私有资源。
-
void *private_data#
-
NANOARROW_IPC_FEATURE_DICTIONARY_REPLACEMENT#
C++ 辅助工具#
- 组 唯一对象包装器
扩展 nanoarrow.hpp 中的唯一对象包装器,以包含 nanoarrow_ipc.h 头文件中定义的 C 结构体。
类型定义
包装唯一结构体 ArrowIpcSharedBuffer 的类。
-
using UniqueDecoder = internal::Unique<struct ArrowIpcDecoder>#
包装唯一结构体 ArrowIpcDecoder 的类。
包装唯一结构体 ArrowIpcFooter 的类。
-
using UniqueEncoder = internal::Unique<struct ArrowIpcEncoder>#
包装一个唯一的 struct ArrowIpcEncoder 的类。
-
using UniqueDecompressor = internal::Unique<struct ArrowIpcDecompressor>#
包装一个唯一的 struct ArrowIpcDecompressor 的类。
-
using UniqueInputStream = internal::Unique<struct ArrowIpcInputStream>#
包装一个唯一的 struct ArrowIpcInputStream 的类。
-
using UniqueOutputStream = internal::Unique<struct ArrowIpcOutputStream>#
包装一个唯一的 struct ArrowIpcOutputStream 的类。
-
using UniqueWriter = internal::Unique<struct ArrowIpcWriter>#
包装一个唯一的 struct ArrowIpcWriter 的类。