blob: 52423074e454e0828485cdc600b96b1cfba99b95 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Memory (management) &#8212; Apache Arrow v4.0.1</title>
<link href="../../_static/css/theme.css" rel="stylesheet" />
<link href="../../_static/css/index.c5995385ac14fb8791e8eb36b4908be2.css" rel="stylesheet" />
<link rel="stylesheet"
href="../../_static/vendor/fontawesome/5.13.0/css/all.min.css">
<link rel="preload" as="font" type="font/woff2" crossorigin
href="../../_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff2">
<link rel="preload" as="font" type="font/woff2" crossorigin
href="../../_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff2">
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../_static/basic.css" />
<link rel="stylesheet" type="text/css" href="../../_static/theme_overrides.css" />
<link rel="preload" as="script" href="../../_static/js/index.1c5a1a01449ed65a7b51.js">
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<link rel="canonical" href="https://arrow.apache.org/docs/cpp/api/memory.html" />
<link rel="shortcut icon" href="../../_static/favicon.ico"/>
<link rel="canonical" href="https://arrow.apache.org/docs/cpp/api/memory.html" />
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Data Types" href="datatype.html" />
<link rel="prev" title="Programming Support" href="support.html" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="docsearch:language" content="en" />
</head>
<body data-spy="scroll" data-target="#bd-toc-nav" data-offset="80">
<div class="container-fluid" id="banner"></div>
<div class="container-xl">
<div class="row">
<!-- Only show if we have sidebars configured, else just a small margin -->
<div class="col-12 col-md-3 bd-sidebar">
<a class="navbar-brand" href="../../index.html">
<img src="../../_static/arrow.png" class="logo" alt="logo">
</a>
<form class="bd-search d-flex align-items-center" action="../../search.html" method="get">
<i class="icon fas fa-search"></i>
<input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" >
</form>
<nav class="bd-links" id="bd-docs-nav" aria-label="Main navigation">
<div class="bd-toc-item active">
<p class="caption">
<span class="caption-text">
Specifications and Protocols
</span>
</p>
<ul class="nav bd-sidenav">
<li class="toctree-l1">
<a class="reference internal" href="../../format/Versioning.html">
Format Versioning and Stability
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../format/Columnar.html">
Arrow Columnar Format
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../format/Flight.html">
Arrow Flight RPC
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../format/Integration.html">
Integration Testing
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../format/CDataInterface.html">
The Arrow C data interface
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../format/CStreamInterface.html">
The Arrow C stream interface
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../format/Other.html">
Other Data Structures
</a>
</li>
</ul>
<p class="caption">
<span class="caption-text">
Libraries
</span>
</p>
<ul class="current nav bd-sidenav">
<li class="toctree-l1">
<a class="reference internal" href="../../status.html">
Implementation Status
</a>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://arrow.apache.org/docs/c_glib/">
C/GLib
</a>
</li>
<li class="toctree-l1 current active has-children">
<a class="reference internal" href="../index.html">
C++
</a>
<input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/>
<label for="toctree-checkbox-1">
<i class="fas fa-chevron-down">
</i>
</label>
<ul class="current">
<li class="toctree-l2 has-children">
<a class="reference internal" href="../getting_started.html">
User Guide
</a>
<input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/>
<label for="toctree-checkbox-2">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l3">
<a class="reference internal" href="../overview.html">
High-Level Overview
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../conventions.html">
Conventions
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../cmake.html">
Using Arrow C++ in your own project
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../memory.html">
Memory Management
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../arrays.html">
Arrays
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../datatypes.html">
Data Types
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../tables.html">
Tabular Data
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../compute.html">
Compute Functions
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../io.html">
Input / output and filesystems
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../ipc.html">
Reading and writing the Arrow IPC format
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../parquet.html">
Reading and writing Parquet files
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../csv.html">
Reading CSV files
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../json.html">
Reading JSON files
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../dataset.html">
Tabular Datasets
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../flight.html">
Arrow Flight RPC
</a>
</li>
</ul>
</li>
<li class="toctree-l2 has-children">
<a class="reference internal" href="../examples/index.html">
Examples
</a>
<input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/>
<label for="toctree-checkbox-3">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l3">
<a class="reference internal" href="../examples/cmake_minimal_build.html">
Minimal build using CMake
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../examples/dataset_documentation_example.html">
Arrow Datasets example
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../examples/row_columnar_conversion.html">
Row to columnar conversion
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../examples/tuple_range_conversion.html">
std::tuple-like ranges to Arrow
</a>
</li>
</ul>
</li>
<li class="toctree-l2 current active has-children">
<a class="reference internal" href="../api.html">
API Reference
</a>
<input checked="" class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/>
<label for="toctree-checkbox-4">
<i class="fas fa-chevron-down">
</i>
</label>
<ul class="current">
<li class="toctree-l3">
<a class="reference internal" href="support.html">
Programming Support
</a>
</li>
<li class="toctree-l3 current active">
<a class="current reference internal" href="#">
Memory (management)
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="datatype.html">
Data Types
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="array.html">
Arrays
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="scalar.html">
Scalars
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="builder.html">
Array Builders
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="table.html">
Two-dimensional Datasets
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="c_abi.html">
C Interfaces
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="compute.html">
Compute Functions
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="tensor.html">
Tensors
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="utilities.html">
Utilities
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="io.html">
Input / output
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="ipc.html">
Arrow IPC
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="formats.html">
File Formats
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="cuda.html">
CUDA support
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="flight.html">
Arrow Flight RPC
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="filesystem.html">
Filesystems
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="dataset.html">
Dataset
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://github.com/apache/arrow/blob/master/csharp/README.md">
C#
</a>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://godoc.org/github.com/apache/arrow/go/arrow">
Go
</a>
</li>
<li class="toctree-l1 has-children">
<a class="reference internal" href="../../java/index.html">
Java
</a>
<input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/>
<label for="toctree-checkbox-5">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l2">
<a class="reference internal" href="../../java/vector.html">
ValueVector
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../java/vector_schema_root.html">
VectorSchemaRoot
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../java/ipc.html">
Reading/Writing IPC formats
</a>
</li>
<li class="toctree-l2">
<a class="reference external" href="https://arrow.apache.org/docs/java/reference/">
Reference (javadoc)
</a>
</li>
</ul>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://arrow.apache.org/docs/js/">
JavaScript
</a>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://github.com/apache/arrow/blob/master/julia/Arrow/README.md">
Julia
</a>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://github.com/apache/arrow/blob/master/matlab/README.md">
MATLAB
</a>
</li>
<li class="toctree-l1 has-children">
<a class="reference internal" href="../../python/index.html">
Python
</a>
<input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/>
<label for="toctree-checkbox-6">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l2">
<a class="reference internal" href="../../python/install.html">
Installing PyArrow
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/memory.html">
Memory and IO Interfaces
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/data.html">
Data Types and In-Memory Data Model
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/compute.html">
Compute Functions
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/ipc.html">
Streaming, Serialization, and IPC
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/filesystems.html">
Filesystem Interface
</a>
</li>
<li class="toctree-l2 has-children">
<a class="reference internal" href="../../python/filesystems_deprecated.html">
Filesystem Interface (legacy)
</a>
<input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/>
<label for="toctree-checkbox-7">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.hdfs.connect.html">
pyarrow.hdfs.connect
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.cat.html">
pyarrow.HadoopFileSystem.cat
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.chmod.html">
pyarrow.HadoopFileSystem.chmod
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.chown.html">
pyarrow.HadoopFileSystem.chown
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.delete.html">
pyarrow.HadoopFileSystem.delete
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.df.html">
pyarrow.HadoopFileSystem.df
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.disk_usage.html">
pyarrow.HadoopFileSystem.disk_usage
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.download.html">
pyarrow.HadoopFileSystem.download
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.exists.html">
pyarrow.HadoopFileSystem.exists
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.get_capacity.html">
pyarrow.HadoopFileSystem.get_capacity
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.get_space_used.html">
pyarrow.HadoopFileSystem.get_space_used
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.info.html">
pyarrow.HadoopFileSystem.info
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.ls.html">
pyarrow.HadoopFileSystem.ls
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.mkdir.html">
pyarrow.HadoopFileSystem.mkdir
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.open.html">
pyarrow.HadoopFileSystem.open
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.rename.html">
pyarrow.HadoopFileSystem.rename
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.rm.html">
pyarrow.HadoopFileSystem.rm
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.upload.html">
pyarrow.HadoopFileSystem.upload
</a>
</li>
<li class="toctree-l3">
<a class="reference internal" href="../../python/generated/pyarrow.HdfsFile.html">
pyarrow.HdfsFile
</a>
</li>
</ul>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/plasma.html">
The Plasma In-Memory Object Store
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/numpy.html">
NumPy Integration
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/pandas.html">
Pandas Integration
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/timestamps.html">
Timestamps
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/csv.html">
Reading CSV files
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/feather.html">
Feather File Format
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/json.html">
Reading JSON files
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/parquet.html">
Reading and Writing the Apache Parquet Format
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/dataset.html">
Tabular Datasets
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/cuda.html">
CUDA Integration
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/extending_types.html">
Extending pyarrow
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/extending.html">
Using pyarrow from C++ and Cython Code
</a>
</li>
<li class="toctree-l2 has-children">
<a class="reference internal" href="../../python/api.html">
API Reference
</a>
<input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/>
<label for="toctree-checkbox-8">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/datatypes.html">
Data Types and Schemas
</a>
<input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/>
<label for="toctree-checkbox-9">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.null.html">
pyarrow.null
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.bool_.html">
pyarrow.bool_
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.int8.html">
pyarrow.int8
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.int16.html">
pyarrow.int16
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.int32.html">
pyarrow.int32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.int64.html">
pyarrow.int64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.uint8.html">
pyarrow.uint8
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.uint16.html">
pyarrow.uint16
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.uint32.html">
pyarrow.uint32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.uint64.html">
pyarrow.uint64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.float16.html">
pyarrow.float16
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.float32.html">
pyarrow.float32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.float64.html">
pyarrow.float64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.time32.html">
pyarrow.time32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.time64.html">
pyarrow.time64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.timestamp.html">
pyarrow.timestamp
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.date32.html">
pyarrow.date32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.date64.html">
pyarrow.date64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.binary.html">
pyarrow.binary
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.string.html">
pyarrow.string
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.utf8.html">
pyarrow.utf8
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.large_binary.html">
pyarrow.large_binary
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.large_string.html">
pyarrow.large_string
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.large_utf8.html">
pyarrow.large_utf8
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.decimal128.html">
pyarrow.decimal128
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.list_.html">
pyarrow.list_
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.large_list.html">
pyarrow.large_list
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.map_.html">
pyarrow.map_
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.struct.html">
pyarrow.struct
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dictionary.html">
pyarrow.dictionary
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.field.html">
pyarrow.field
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.schema.html">
pyarrow.schema
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.from_numpy_dtype.html">
pyarrow.from_numpy_dtype
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.DataType.html">
pyarrow.DataType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.DictionaryType.html">
pyarrow.DictionaryType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ListType.html">
pyarrow.ListType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.MapType.html">
pyarrow.MapType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.StructType.html">
pyarrow.StructType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UnionType.html">
pyarrow.UnionType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.TimestampType.html">
pyarrow.TimestampType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Time32Type.html">
pyarrow.Time32Type
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Time64Type.html">
pyarrow.Time64Type
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.FixedSizeBinaryType.html">
pyarrow.FixedSizeBinaryType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Decimal128Type.html">
pyarrow.Decimal128Type
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Field.html">
pyarrow.Field
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Schema.html">
pyarrow.Schema
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ExtensionType.html">
pyarrow.ExtensionType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.PyExtensionType.html">
pyarrow.PyExtensionType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.register_extension_type.html">
pyarrow.register_extension_type
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.unregister_extension_type.html">
pyarrow.unregister_extension_type
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_boolean.html">
pyarrow.types.is_boolean
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_integer.html">
pyarrow.types.is_integer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_signed_integer.html">
pyarrow.types.is_signed_integer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_unsigned_integer.html">
pyarrow.types.is_unsigned_integer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_int8.html">
pyarrow.types.is_int8
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_int16.html">
pyarrow.types.is_int16
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_int32.html">
pyarrow.types.is_int32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_int64.html">
pyarrow.types.is_int64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_uint8.html">
pyarrow.types.is_uint8
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_uint16.html">
pyarrow.types.is_uint16
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_uint32.html">
pyarrow.types.is_uint32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_uint64.html">
pyarrow.types.is_uint64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_floating.html">
pyarrow.types.is_floating
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_float16.html">
pyarrow.types.is_float16
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_float32.html">
pyarrow.types.is_float32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_float64.html">
pyarrow.types.is_float64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_decimal.html">
pyarrow.types.is_decimal
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_list.html">
pyarrow.types.is_list
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_large_list.html">
pyarrow.types.is_large_list
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_struct.html">
pyarrow.types.is_struct
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_union.html">
pyarrow.types.is_union
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_nested.html">
pyarrow.types.is_nested
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_temporal.html">
pyarrow.types.is_temporal
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_timestamp.html">
pyarrow.types.is_timestamp
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_date.html">
pyarrow.types.is_date
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_date32.html">
pyarrow.types.is_date32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_date64.html">
pyarrow.types.is_date64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_time.html">
pyarrow.types.is_time
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_time32.html">
pyarrow.types.is_time32
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_time64.html">
pyarrow.types.is_time64
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_null.html">
pyarrow.types.is_null
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_binary.html">
pyarrow.types.is_binary
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_unicode.html">
pyarrow.types.is_unicode
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_string.html">
pyarrow.types.is_string
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_large_binary.html">
pyarrow.types.is_large_binary
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_large_unicode.html">
pyarrow.types.is_large_unicode
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_large_string.html">
pyarrow.types.is_large_string
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_fixed_size_binary.html">
pyarrow.types.is_fixed_size_binary
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_map.html">
pyarrow.types.is_map
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.types.is_dictionary.html">
pyarrow.types.is_dictionary
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/arrays.html">
Arrays and Scalars
</a>
<input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/>
<label for="toctree-checkbox-10">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.array.html">
pyarrow.array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.nulls.html">
pyarrow.nulls
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Array.html">
pyarrow.Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.BooleanArray.html">
pyarrow.BooleanArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.FloatingPointArray.html">
pyarrow.FloatingPointArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.IntegerArray.html">
pyarrow.IntegerArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Int8Array.html">
pyarrow.Int8Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Int16Array.html">
pyarrow.Int16Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Int32Array.html">
pyarrow.Int32Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Int64Array.html">
pyarrow.Int64Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.NullArray.html">
pyarrow.NullArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.NumericArray.html">
pyarrow.NumericArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UInt8Array.html">
pyarrow.UInt8Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UInt16Array.html">
pyarrow.UInt16Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UInt32Array.html">
pyarrow.UInt32Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UInt64Array.html">
pyarrow.UInt64Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.BinaryArray.html">
pyarrow.BinaryArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.StringArray.html">
pyarrow.StringArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.FixedSizeBinaryArray.html">
pyarrow.FixedSizeBinaryArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.LargeBinaryArray.html">
pyarrow.LargeBinaryArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.LargeStringArray.html">
pyarrow.LargeStringArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Time32Array.html">
pyarrow.Time32Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Time64Array.html">
pyarrow.Time64Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Date32Array.html">
pyarrow.Date32Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Date64Array.html">
pyarrow.Date64Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.TimestampArray.html">
pyarrow.TimestampArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Decimal128Array.html">
pyarrow.Decimal128Array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.DictionaryArray.html">
pyarrow.DictionaryArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ListArray.html">
pyarrow.ListArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.LargeListArray.html">
pyarrow.LargeListArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.StructArray.html">
pyarrow.StructArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UnionArray.html">
pyarrow.UnionArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ExtensionArray.html">
pyarrow.ExtensionArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.scalar.html">
pyarrow.scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.NA.html">
pyarrow.NA
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Scalar.html">
pyarrow.Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.BooleanScalar.html">
pyarrow.BooleanScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Int8Scalar.html">
pyarrow.Int8Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Int16Scalar.html">
pyarrow.Int16Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Int32Scalar.html">
pyarrow.Int32Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Int64Scalar.html">
pyarrow.Int64Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UInt8Scalar.html">
pyarrow.UInt8Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UInt16Scalar.html">
pyarrow.UInt16Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UInt32Scalar.html">
pyarrow.UInt32Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UInt64Scalar.html">
pyarrow.UInt64Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.FloatScalar.html">
pyarrow.FloatScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.DoubleScalar.html">
pyarrow.DoubleScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.BinaryScalar.html">
pyarrow.BinaryScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.StringScalar.html">
pyarrow.StringScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.FixedSizeBinaryScalar.html">
pyarrow.FixedSizeBinaryScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.LargeBinaryScalar.html">
pyarrow.LargeBinaryScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.LargeStringScalar.html">
pyarrow.LargeStringScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Time32Scalar.html">
pyarrow.Time32Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Time64Scalar.html">
pyarrow.Time64Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Date32Scalar.html">
pyarrow.Date32Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Date64Scalar.html">
pyarrow.Date64Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.TimestampScalar.html">
pyarrow.TimestampScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Decimal128Scalar.html">
pyarrow.Decimal128Scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.DictionaryScalar.html">
pyarrow.DictionaryScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ListScalar.html">
pyarrow.ListScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.LargeListScalar.html">
pyarrow.LargeListScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.StructScalar.html">
pyarrow.StructScalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.UnionScalar.html">
pyarrow.UnionScalar
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/memory.html">
Buffers and Memory
</a>
<input class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" type="checkbox"/>
<label for="toctree-checkbox-11">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.allocate_buffer.html">
pyarrow.allocate_buffer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.py_buffer.html">
pyarrow.py_buffer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.foreign_buffer.html">
pyarrow.foreign_buffer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Buffer.html">
pyarrow.Buffer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ResizableBuffer.html">
pyarrow.ResizableBuffer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compress.html">
pyarrow.compress
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.decompress.html">
pyarrow.decompress
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.MemoryPool.html">
pyarrow.MemoryPool
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.default_memory_pool.html">
pyarrow.default_memory_pool
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.jemalloc_memory_pool.html">
pyarrow.jemalloc_memory_pool
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.mimalloc_memory_pool.html">
pyarrow.mimalloc_memory_pool
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.system_memory_pool.html">
pyarrow.system_memory_pool
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.jemalloc_set_decay_ms.html">
pyarrow.jemalloc_set_decay_ms
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.set_memory_pool.html">
pyarrow.set_memory_pool
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.log_memory_allocations.html">
pyarrow.log_memory_allocations
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.total_allocated_bytes.html">
pyarrow.total_allocated_bytes
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/compute.html">
Compute Functions
</a>
<input class="toctree-checkbox" id="toctree-checkbox-12" name="toctree-checkbox-12" type="checkbox"/>
<label for="toctree-checkbox-12">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.count.html">
pyarrow.compute.count
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.mean.html">
pyarrow.compute.mean
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.min_max.html">
pyarrow.compute.min_max
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.mode.html">
pyarrow.compute.mode
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.stddev.html">
pyarrow.compute.stddev
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.sum.html">
pyarrow.compute.sum
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.variance.html">
pyarrow.compute.variance
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.add.html">
pyarrow.compute.add
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.add_checked.html">
pyarrow.compute.add_checked
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.divide.html">
pyarrow.compute.divide
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.divide_checked.html">
pyarrow.compute.divide_checked
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.multiply.html">
pyarrow.compute.multiply
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.multiply_checked.html">
pyarrow.compute.multiply_checked
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.subtract.html">
pyarrow.compute.subtract
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.subtract_checked.html">
pyarrow.compute.subtract_checked
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.power.html">
pyarrow.compute.power
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.power_checked.html">
pyarrow.compute.power_checked
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.equal.html">
pyarrow.compute.equal
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.greater.html">
pyarrow.compute.greater
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.greater_equal.html">
pyarrow.compute.greater_equal
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.less.html">
pyarrow.compute.less
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.less_equal.html">
pyarrow.compute.less_equal
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.not_equal.html">
pyarrow.compute.not_equal
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.and_.html">
pyarrow.compute.and_
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.and_kleene.html">
pyarrow.compute.and_kleene
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.all.html">
pyarrow.compute.all
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.any.html">
pyarrow.compute.any
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.invert.html">
pyarrow.compute.invert
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.or_.html">
pyarrow.compute.or_
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.or_kleene.html">
pyarrow.compute.or_kleene
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.xor.html">
pyarrow.compute.xor
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_alnum.html">
pyarrow.compute.ascii_is_alnum
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_alpha.html">
pyarrow.compute.ascii_is_alpha
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_decimal.html">
pyarrow.compute.ascii_is_decimal
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_lower.html">
pyarrow.compute.ascii_is_lower
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_printable.html">
pyarrow.compute.ascii_is_printable
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_space.html">
pyarrow.compute.ascii_is_space
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_upper.html">
pyarrow.compute.ascii_is_upper
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_alnum.html">
pyarrow.compute.utf8_is_alnum
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_alpha.html">
pyarrow.compute.utf8_is_alpha
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_decimal.html">
pyarrow.compute.utf8_is_decimal
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_digit.html">
pyarrow.compute.utf8_is_digit
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_lower.html">
pyarrow.compute.utf8_is_lower
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_numeric.html">
pyarrow.compute.utf8_is_numeric
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_printable.html">
pyarrow.compute.utf8_is_printable
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_space.html">
pyarrow.compute.utf8_is_space
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_upper.html">
pyarrow.compute.utf8_is_upper
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_title.html">
pyarrow.compute.ascii_is_title
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_title.html">
pyarrow.compute.utf8_is_title
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.string_is_ascii.html">
pyarrow.compute.string_is_ascii
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_lower.html">
pyarrow.compute.ascii_lower
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_upper.html">
pyarrow.compute.ascii_upper
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_lower.html">
pyarrow.compute.utf8_lower
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_upper.html">
pyarrow.compute.utf8_upper
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.index_in.html">
pyarrow.compute.index_in
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.is_in.html">
pyarrow.compute.is_in
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.match_substring.html">
pyarrow.compute.match_substring
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.match_substring_regex.html">
pyarrow.compute.match_substring_regex
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.cast.html">
pyarrow.compute.cast
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.strptime.html">
pyarrow.compute.strptime
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.filter.html">
pyarrow.compute.filter
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.take.html">
pyarrow.compute.take
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.dictionary_encode.html">
pyarrow.compute.dictionary_encode
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.unique.html">
pyarrow.compute.unique
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.value_counts.html">
pyarrow.compute.value_counts
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.partition_nth_indices.html">
pyarrow.compute.partition_nth_indices
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.sort_indices.html">
pyarrow.compute.sort_indices
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.binary_length.html">
pyarrow.compute.binary_length
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.fill_null.html">
pyarrow.compute.fill_null
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.is_null.html">
pyarrow.compute.is_null
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.is_valid.html">
pyarrow.compute.is_valid
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.list_value_length.html">
pyarrow.compute.list_value_length
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.list_flatten.html">
pyarrow.compute.list_flatten
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.compute.list_parent_indices.html">
pyarrow.compute.list_parent_indices
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/files.html">
Streams and File Access
</a>
<input class="toctree-checkbox" id="toctree-checkbox-13" name="toctree-checkbox-13" type="checkbox"/>
<label for="toctree-checkbox-13">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.input_stream.html">
pyarrow.input_stream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.output_stream.html">
pyarrow.output_stream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.memory_map.html">
pyarrow.memory_map
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.create_memory_map.html">
pyarrow.create_memory_map
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.NativeFile.html">
pyarrow.NativeFile
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.OSFile.html">
pyarrow.OSFile
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.PythonFile.html">
pyarrow.PythonFile
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.BufferReader.html">
pyarrow.BufferReader
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.BufferOutputStream.html">
pyarrow.BufferOutputStream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.FixedSizeBufferWriter.html">
pyarrow.FixedSizeBufferWriter
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.MemoryMappedFile.html">
pyarrow.MemoryMappedFile
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.CompressedInputStream.html">
pyarrow.CompressedInputStream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.CompressedOutputStream.html">
pyarrow.CompressedOutputStream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.hdfs.connect.html">
pyarrow.hdfs.connect
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.LocalFileSystem.html">
pyarrow.LocalFileSystem
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/tables.html">
Tables and Tensors
</a>
<input class="toctree-checkbox" id="toctree-checkbox-14" name="toctree-checkbox-14" type="checkbox"/>
<label for="toctree-checkbox-14">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.chunked_array.html">
pyarrow.chunked_array
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.concat_arrays.html">
pyarrow.concat_arrays
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.concat_tables.html">
pyarrow.concat_tables
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.record_batch.html">
pyarrow.record_batch
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.table.html">
pyarrow.table
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ChunkedArray.html">
pyarrow.ChunkedArray
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.RecordBatch.html">
pyarrow.RecordBatch
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Table.html">
pyarrow.Table
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.Tensor.html">
pyarrow.Tensor
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/ipc.html">
Serialization and IPC
</a>
<input class="toctree-checkbox" id="toctree-checkbox-15" name="toctree-checkbox-15" type="checkbox"/>
<label for="toctree-checkbox-15">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.new_file.html">
pyarrow.ipc.new_file
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.open_file.html">
pyarrow.ipc.open_file
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.new_stream.html">
pyarrow.ipc.new_stream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.open_stream.html">
pyarrow.ipc.open_stream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.read_message.html">
pyarrow.ipc.read_message
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.read_record_batch.html">
pyarrow.ipc.read_record_batch
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.get_record_batch_size.html">
pyarrow.ipc.get_record_batch_size
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.read_tensor.html">
pyarrow.ipc.read_tensor
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.write_tensor.html">
pyarrow.ipc.write_tensor
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.get_tensor_size.html">
pyarrow.ipc.get_tensor_size
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.Message.html">
pyarrow.ipc.Message
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.MessageReader.html">
pyarrow.ipc.MessageReader
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.RecordBatchFileReader.html">
pyarrow.ipc.RecordBatchFileReader
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.RecordBatchFileWriter.html">
pyarrow.ipc.RecordBatchFileWriter
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.RecordBatchStreamReader.html">
pyarrow.ipc.RecordBatchStreamReader
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.ipc.RecordBatchStreamWriter.html">
pyarrow.ipc.RecordBatchStreamWriter
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.serialize.html">
pyarrow.serialize
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.serialize_to.html">
pyarrow.serialize_to
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.deserialize.html">
pyarrow.deserialize
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.deserialize_components.html">
pyarrow.deserialize_components
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.deserialize_from.html">
pyarrow.deserialize_from
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.read_serialized.html">
pyarrow.read_serialized
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.SerializedPyObject.html">
pyarrow.SerializedPyObject
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.SerializationContext.html">
pyarrow.SerializationContext
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/flight.html">
Arrow Flight
</a>
<input class="toctree-checkbox" id="toctree-checkbox-16" name="toctree-checkbox-16" type="checkbox"/>
<label for="toctree-checkbox-16">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.Action.html">
pyarrow.flight.Action
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.ActionType.html">
pyarrow.flight.ActionType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.DescriptorType.html">
pyarrow.flight.DescriptorType
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.FlightDescriptor.html">
pyarrow.flight.FlightDescriptor
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.FlightEndpoint.html">
pyarrow.flight.FlightEndpoint
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.FlightInfo.html">
pyarrow.flight.FlightInfo
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.Location.html">
pyarrow.flight.Location
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.Ticket.html">
pyarrow.flight.Ticket
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.Result.html">
pyarrow.flight.Result
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.FlightCallOptions.html">
pyarrow.flight.FlightCallOptions
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.FlightClient.html">
pyarrow.flight.FlightClient
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.ClientMiddlewareFactory.html">
pyarrow.flight.ClientMiddlewareFactory
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.ClientMiddleware.html">
pyarrow.flight.ClientMiddleware
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.FlightServerBase.html">
pyarrow.flight.FlightServerBase
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.GeneratorStream.html">
pyarrow.flight.GeneratorStream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.RecordBatchStream.html">
pyarrow.flight.RecordBatchStream
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.ServerMiddlewareFactory.html">
pyarrow.flight.ServerMiddlewareFactory
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.ServerMiddleware.html">
pyarrow.flight.ServerMiddleware
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.ClientAuthHandler.html">
pyarrow.flight.ClientAuthHandler
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.ServerAuthHandler.html">
pyarrow.flight.ServerAuthHandler
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.FlightMethod.html">
pyarrow.flight.FlightMethod
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.flight.CallInfo.html">
pyarrow.flight.CallInfo
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/formats.html">
Tabular File Formats
</a>
<input class="toctree-checkbox" id="toctree-checkbox-17" name="toctree-checkbox-17" type="checkbox"/>
<label for="toctree-checkbox-17">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.csv.ReadOptions.html">
pyarrow.csv.ReadOptions
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.csv.ParseOptions.html">
pyarrow.csv.ParseOptions
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.csv.ConvertOptions.html">
pyarrow.csv.ConvertOptions
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.csv.read_csv.html">
pyarrow.csv.read_csv
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.csv.open_csv.html">
pyarrow.csv.open_csv
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.csv.CSVStreamingReader.html">
pyarrow.csv.CSVStreamingReader
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.feather.read_feather.html">
pyarrow.feather.read_feather
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.feather.read_table.html">
pyarrow.feather.read_table
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.feather.write_feather.html">
pyarrow.feather.write_feather
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.json.ReadOptions.html">
pyarrow.json.ReadOptions
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.json.ParseOptions.html">
pyarrow.json.ParseOptions
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.json.read_json.html">
pyarrow.json.read_json
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.ParquetDataset.html">
pyarrow.parquet.ParquetDataset
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.ParquetFile.html">
pyarrow.parquet.ParquetFile
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.ParquetWriter.html">
pyarrow.parquet.ParquetWriter
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.read_table.html">
pyarrow.parquet.read_table
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.read_metadata.html">
pyarrow.parquet.read_metadata
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.read_pandas.html">
pyarrow.parquet.read_pandas
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.read_schema.html">
pyarrow.parquet.read_schema
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.write_metadata.html">
pyarrow.parquet.write_metadata
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.write_table.html">
pyarrow.parquet.write_table
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.parquet.write_to_dataset.html">
pyarrow.parquet.write_to_dataset
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.orc.ORCFile.html">
pyarrow.orc.ORCFile
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/filesystems.html">
Filesystems
</a>
<input class="toctree-checkbox" id="toctree-checkbox-18" name="toctree-checkbox-18" type="checkbox"/>
<label for="toctree-checkbox-18">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.FileInfo.html">
pyarrow.fs.FileInfo
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.FileSelector.html">
pyarrow.fs.FileSelector
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.FileSystem.html">
pyarrow.fs.FileSystem
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.LocalFileSystem.html">
pyarrow.fs.LocalFileSystem
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.S3FileSystem.html">
pyarrow.fs.S3FileSystem
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.HadoopFileSystem.html">
pyarrow.fs.HadoopFileSystem
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.SubTreeFileSystem.html">
pyarrow.fs.SubTreeFileSystem
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.PyFileSystem.html">
pyarrow.fs.PyFileSystem
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.FileSystemHandler.html">
pyarrow.fs.FileSystemHandler
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.fs.FSSpecHandler.html">
pyarrow.fs.FSSpecHandler
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/dataset.html">
Dataset
</a>
<input class="toctree-checkbox" id="toctree-checkbox-19" name="toctree-checkbox-19" type="checkbox"/>
<label for="toctree-checkbox-19">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.dataset.html">
pyarrow.dataset.dataset
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.parquet_dataset.html">
pyarrow.dataset.parquet_dataset
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.partitioning.html">
pyarrow.dataset.partitioning
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.field.html">
pyarrow.dataset.field
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.scalar.html">
pyarrow.dataset.scalar
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.FileFormat.html">
pyarrow.dataset.FileFormat
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.ParquetFileFormat.html">
pyarrow.dataset.ParquetFileFormat
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.Partitioning.html">
pyarrow.dataset.Partitioning
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.PartitioningFactory.html">
pyarrow.dataset.PartitioningFactory
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.DirectoryPartitioning.html">
pyarrow.dataset.DirectoryPartitioning
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.HivePartitioning.html">
pyarrow.dataset.HivePartitioning
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.Dataset.html">
pyarrow.dataset.Dataset
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.FileSystemDataset.html">
pyarrow.dataset.FileSystemDataset
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.FileSystemFactoryOptions.html">
pyarrow.dataset.FileSystemFactoryOptions
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.FileSystemDatasetFactory.html">
pyarrow.dataset.FileSystemDatasetFactory
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.UnionDataset.html">
pyarrow.dataset.UnionDataset
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.Scanner.html">
pyarrow.dataset.Scanner
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.dataset.Expression.html">
pyarrow.dataset.Expression
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/plasma.html">
Plasma In-Memory Object Store
</a>
<input class="toctree-checkbox" id="toctree-checkbox-20" name="toctree-checkbox-20" type="checkbox"/>
<label for="toctree-checkbox-20">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.plasma.ObjectID.html">
pyarrow.plasma.ObjectID
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.plasma.PlasmaClient.html">
pyarrow.plasma.PlasmaClient
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.plasma.PlasmaBuffer.html">
pyarrow.plasma.PlasmaBuffer
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/cuda.html">
CUDA Integration
</a>
<input class="toctree-checkbox" id="toctree-checkbox-21" name="toctree-checkbox-21" type="checkbox"/>
<label for="toctree-checkbox-21">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.Context.html">
pyarrow.cuda.Context
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.CudaBuffer.html">
pyarrow.cuda.CudaBuffer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.new_host_buffer.html">
pyarrow.cuda.new_host_buffer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.HostBuffer.html">
pyarrow.cuda.HostBuffer
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.BufferReader.html">
pyarrow.cuda.BufferReader
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.BufferWriter.html">
pyarrow.cuda.BufferWriter
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.serialize_record_batch.html">
pyarrow.cuda.serialize_record_batch
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.read_record_batch.html">
pyarrow.cuda.read_record_batch
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.read_message.html">
pyarrow.cuda.read_message
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cuda.IpcMemHandle.html">
pyarrow.cuda.IpcMemHandle
</a>
</li>
</ul>
</li>
<li class="toctree-l3 has-children">
<a class="reference internal" href="../../python/api/misc.html">
Miscellaneous
</a>
<input class="toctree-checkbox" id="toctree-checkbox-22" name="toctree-checkbox-22" type="checkbox"/>
<label for="toctree-checkbox-22">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.cpu_count.html">
pyarrow.cpu_count
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.set_cpu_count.html">
pyarrow.set_cpu_count
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.get_include.html">
pyarrow.get_include
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.get_libraries.html">
pyarrow.get_libraries
</a>
</li>
<li class="toctree-l4">
<a class="reference internal" href="../../python/generated/pyarrow.get_library_dirs.html">
pyarrow.get_library_dirs
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/getting_involved.html">
Getting Involved
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../python/benchmarks.html">
Benchmarks
</a>
</li>
</ul>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://arrow.apache.org/docs/r/">
R
</a>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://github.com/apache/arrow/blob/master/ruby/README.md">
Ruby
</a>
</li>
<li class="toctree-l1">
<a class="reference external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
</ul>
<p class="caption">
<span class="caption-text">
Development
</span>
</p>
<ul class="nav bd-sidenav">
<li class="toctree-l1">
<a class="reference internal" href="../../developers/contributing.html">
Contributing to Apache Arrow
</a>
</li>
<li class="toctree-l1 has-children">
<a class="reference internal" href="../../developers/cpp/index.html">
C++ Development
</a>
<input class="toctree-checkbox" id="toctree-checkbox-23" name="toctree-checkbox-23" type="checkbox"/>
<label for="toctree-checkbox-23">
<i class="fas fa-chevron-down">
</i>
</label>
<ul>
<li class="toctree-l2">
<a class="reference internal" href="../../developers/cpp/building.html">
Building Arrow C++
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../developers/cpp/development.html">
Development Guidelines
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../developers/cpp/windows.html">
Developing on Windows
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../developers/cpp/conventions.html">
Conventions
</a>
</li>
<li class="toctree-l2">
<a class="reference internal" href="../../developers/cpp/fuzzing.html">
Fuzzing Arrow C++
</a>
</li>
</ul>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../developers/python.html">
Python Development
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../developers/archery.html">
Daily Development using Archery
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../developers/crossbow.html">
Packaging and Testing with Crossbow
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../developers/docker.html">
Running Docker Builds
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../developers/benchmarks.html">
Benchmarks
</a>
</li>
<li class="toctree-l1">
<a class="reference internal" href="../../developers/documentation.html">
Building the Documentation
</a>
</li>
</ul>
</div>
</nav>
</div>
<div class="d-none d-xl-block col-xl-2 bd-toc">
<div class="toc-item">
<div class="tocsection onthispage pt-5 pb-3">
<i class="fas fa-list"></i> On this page
</div>
<nav id="bd-toc-nav">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#devices">
Devices
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#memory-managers">
Memory Managers
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#buffers">
Buffers
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#memory-pools">
Memory Pools
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#allocation-functions">
Allocation Functions
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#slicing">
Slicing
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#buffer-builders">
Buffer Builders
</a>
</li>
<li class="toc-h2 nav-item toc-entry">
<a class="reference internal nav-link" href="#stl-integration">
STL Integration
</a>
</li>
</ul>
</nav>
</div>
<div class="toc-item">
</div>
</div>
<main class="col-12 col-md-9 col-xl-7 py-md-5 pl-md-5 pr-md-4 bd-content" role="main">
<div>
<div class="section" id="memory-management">
<h1>Memory (management)<a class="headerlink" href="#memory-management" title="Permalink to this headline"></a></h1>
<div class="section" id="devices">
<h2>Devices<a class="headerlink" href="#devices" title="Permalink to this headline"></a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6DeviceE">
<span id="_CPPv3N5arrow6DeviceE"></span><span id="_CPPv2N5arrow6DeviceE"></span><span id="arrow::Device"></span><span class="target" id="classarrow_1_1_device"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">Device</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">enable_shared_from_this</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6DeviceE" title="arrow::Device"><span class="n"><span class="pre">Device</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">util</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">EqualityComparable</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6DeviceE" title="arrow::Device"><span class="n"><span class="pre">Device</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow6DeviceE" title="Permalink to this definition"></a><br /></dt>
<dd><p>EXPERIMENTAL: Abstract interface for hardware devices. </p>
<p>This object represents a device with access to some memory spaces. When handling a <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> or raw memory address, it allows deciding in which context the raw memory address should be interpreted (e.g. CPU-accessible memory, or embedded memory on some particular GPU). </p>
<p>Subclassed by <a class="reference internal" href="#classarrow_1_1_c_p_u_device"><span class="std std-ref">arrow::CPUDevice</span></a>, <a class="reference internal" href="cuda.html#classarrow_1_1cuda_1_1_cuda_device"><span class="std std-ref">arrow::cuda::CudaDevice</span></a></p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Device9type_nameEv">
<span id="_CPPv3NK5arrow6Device9type_nameEv"></span><span id="_CPPv2NK5arrow6Device9type_nameEv"></span><span id="arrow::Device::type_nameC"></span><span class="target" id="classarrow_1_1_device_1a64fa6c42b0237fab3002c0da05be613d"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">type_name</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Device9type_nameEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>A shorthand for this device’s type. </p>
<p>The returned value is different for each device class, but is the same for all instances of a given class. It can be used as a replacement for RTTI. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Device8ToStringEv">
<span id="_CPPv3NK5arrow6Device8ToStringEv"></span><span id="_CPPv2NK5arrow6Device8ToStringEv"></span><span id="arrow::Device::ToStringC"></span><span class="target" id="classarrow_1_1_device_1a308203da24624f8ef8df7329f214ef6f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ToString</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Device8ToStringEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>A human-readable description of the device. </p>
<p>The returned value should be detailed enough to distinguish between different instances, where necessary. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Device6EqualsERK6Device">
<span id="_CPPv3NK5arrow6Device6EqualsERK6Device"></span><span id="_CPPv2NK5arrow6Device6EqualsERK6Device"></span><span id="arrow::Device::Equals__DeviceCRC"></span><span class="target" id="classarrow_1_1_device_1acaaa334c017c8e0d097918a730d8544b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Equals</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow6DeviceE" title="arrow::Device"><span class="n"><span class="pre">Device</span></span></a><span class="p"><span class="pre">&amp;</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Device6EqualsERK6Device" title="Permalink to this definition"></a><br /></dt>
<dd><p>Whether this instance points to the same device as another one. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Device6is_cpuEv">
<span id="_CPPv3NK5arrow6Device6is_cpuEv"></span><span id="_CPPv2NK5arrow6Device6is_cpuEv"></span><span id="arrow::Device::is_cpuC"></span><span class="target" id="classarrow_1_1_device_1acd6a82de24ea679e2041159b18cfe294"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">is_cpu</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Device6is_cpuEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Whether this device is the main CPU device. </p>
<p>This shorthand method is very useful when deciding whether a memory address is CPU-accessible. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Device22default_memory_managerEv">
<span id="_CPPv3N5arrow6Device22default_memory_managerEv"></span><span id="_CPPv2N5arrow6Device22default_memory_managerEv"></span><span id="arrow::Device::default_memory_manager"></span><span class="target" id="classarrow_1_1_device_1a9615d7d1f5136d43bcf1061782197412"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">default_memory_manager</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow6Device22default_memory_managerEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> instance tied to this device. </p>
<p>The returned instance uses default parameters for this device type’s <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> implementation. Some devices also allow constructing <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> instances with non-default parameters. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow9CPUDeviceE">
<span id="_CPPv3N5arrow9CPUDeviceE"></span><span id="_CPPv2N5arrow9CPUDeviceE"></span><span id="arrow::CPUDevice"></span><span class="target" id="classarrow_1_1_c_p_u_device"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">CPUDevice</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow6DeviceE" title="arrow::Device"><span class="n"><span class="pre">Device</span></span></a><a class="headerlink" href="#_CPPv4N5arrow9CPUDeviceE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow9CPUDevice9type_nameEv">
<span id="_CPPv3NK5arrow9CPUDevice9type_nameEv"></span><span id="_CPPv2NK5arrow9CPUDevice9type_nameEv"></span><span id="arrow::CPUDevice::type_nameC"></span><span class="target" id="classarrow_1_1_c_p_u_device_1a56de6467569661983bf89cca4e23e313"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">type_name</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow9CPUDevice9type_nameEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>A shorthand for this device’s type. </p>
<p>The returned value is different for each device class, but is the same for all instances of a given class. It can be used as a replacement for RTTI. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow9CPUDevice8ToStringEv">
<span id="_CPPv3NK5arrow9CPUDevice8ToStringEv"></span><span id="_CPPv2NK5arrow9CPUDevice8ToStringEv"></span><span id="arrow::CPUDevice::ToStringC"></span><span class="target" id="classarrow_1_1_c_p_u_device_1af136696c33197fac051e3cca0688f31e"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ToString</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow9CPUDevice8ToStringEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>A human-readable description of the device. </p>
<p>The returned value should be detailed enough to distinguish between different instances, where necessary. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow9CPUDevice6EqualsERK6Device">
<span id="_CPPv3NK5arrow9CPUDevice6EqualsERK6Device"></span><span id="_CPPv2NK5arrow9CPUDevice6EqualsERK6Device"></span><span id="arrow::CPUDevice::Equals__DeviceCRC"></span><span class="target" id="classarrow_1_1_c_p_u_device_1a23a4f5100acda607a63371a89e5bb7e5"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Equals</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow6DeviceE" title="arrow::Device"><span class="n"><span class="pre">Device</span></span></a><span class="p"><span class="pre">&amp;</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow9CPUDevice6EqualsERK6Device" title="Permalink to this definition"></a><br /></dt>
<dd><p>Whether this instance points to the same device as another one. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow9CPUDevice22default_memory_managerEv">
<span id="_CPPv3N5arrow9CPUDevice22default_memory_managerEv"></span><span id="_CPPv2N5arrow9CPUDevice22default_memory_managerEv"></span><span id="arrow::CPUDevice::default_memory_manager"></span><span class="target" id="classarrow_1_1_c_p_u_device_1ab5acfa03ea867c7b7fe4f903e8b19547"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">default_memory_manager</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow9CPUDevice22default_memory_managerEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> instance tied to this device. </p>
<p>The returned instance uses default parameters for this device type’s <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> implementation. Some devices also allow constructing <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> instances with non-default parameters. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow9CPUDevice8InstanceEv">
<span id="_CPPv3N5arrow9CPUDevice8InstanceEv"></span><span id="_CPPv2N5arrow9CPUDevice8InstanceEv"></span><span id="arrow::CPUDevice::Instance"></span><span class="target" id="classarrow_1_1_c_p_u_device_1a2639c1933007a4c0b553b245c9a59896"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6DeviceE" title="arrow::Device"><span class="n"><span class="pre">Device</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Instance</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow9CPUDevice8InstanceEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return the global <a class="reference internal" href="#classarrow_1_1_c_p_u_device"><span class="std std-ref">CPUDevice</span></a> instance. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow9CPUDevice14memory_managerEP10MemoryPool">
<span id="_CPPv3N5arrow9CPUDevice14memory_managerEP10MemoryPool"></span><span id="_CPPv2N5arrow9CPUDevice14memory_managerEP10MemoryPool"></span><span id="arrow::CPUDevice::memory_manager__MemoryPoolP"></span><span class="target" id="classarrow_1_1_c_p_u_device_1a477fdfe0a1f4400985dd0efe1da6ad34"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">memory_manager</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow9CPUDevice14memory_managerEP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create a <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>. </p>
<p>The returned <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> will use the given <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> for allocations. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow26default_cpu_memory_managerEv">
<span id="_CPPv3N5arrow26default_cpu_memory_managerEv"></span><span id="_CPPv2N5arrow26default_cpu_memory_managerEv"></span><span id="arrow::default_cpu_memory_manager"></span><span class="target" id="namespacearrow_1a6945ae85a9bf9faebabefcb308098cc8"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">default_cpu_memory_manager</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow26default_cpu_memory_managerEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return the default CPU <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> instance. </p>
<p>The returned singleton instance uses the default <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a>. This function is a faster spelling of <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_c_p_u_device_1a2639c1933007a4c0b553b245c9a59896"><span class="std std-ref"><span class="pre">CPUDevice::Instance()</span></span></a><span class="pre">-&gt;default_memory_manager()</span></code>. </p>
</dd></dl>
</div>
<div class="section" id="memory-managers">
<h2>Memory Managers<a class="headerlink" href="#memory-managers" title="Permalink to this headline"></a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13MemoryManagerE">
<span id="_CPPv3N5arrow13MemoryManagerE"></span><span id="_CPPv2N5arrow13MemoryManagerE"></span><span id="arrow::MemoryManager"></span><span class="target" id="classarrow_1_1_memory_manager"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">MemoryManager</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">enable_shared_from_this</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow13MemoryManagerE" title="Permalink to this definition"></a><br /></dt>
<dd><p>EXPERIMENTAL: An object that provides memory management primitives. </p>
<p>A <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> is always tied to a particular <a class="reference internal" href="#classarrow_1_1_device"><span class="std std-ref">Device</span></a> instance. It can also have additional parameters (such as a <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> to allocate CPU memory). </p>
<p>Subclassed by <a class="reference internal" href="#classarrow_1_1_c_p_u_memory_manager"><span class="std std-ref">arrow::CPUMemoryManager</span></a>, <a class="reference internal" href="cuda.html#classarrow_1_1cuda_1_1_cuda_memory_manager"><span class="std std-ref">arrow::cuda::CudaMemoryManager</span></a></p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow13MemoryManager6deviceEv">
<span id="_CPPv3NK5arrow13MemoryManager6deviceEv"></span><span id="_CPPv2NK5arrow13MemoryManager6deviceEv"></span><span id="arrow::MemoryManager::deviceC"></span><span class="target" id="classarrow_1_1_memory_manager_1a5b5e7539c2b6a3dcec4ed283a314d4a1"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6DeviceE" title="arrow::Device"><span class="n"><span class="pre">Device</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="sig-name descname"><span class="n"><span class="pre">device</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow13MemoryManager6deviceEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The device this <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> is tied to. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow13MemoryManager6is_cpuEv">
<span id="_CPPv3NK5arrow13MemoryManager6is_cpuEv"></span><span id="_CPPv2NK5arrow13MemoryManager6is_cpuEv"></span><span id="arrow::MemoryManager::is_cpuC"></span><span class="target" id="classarrow_1_1_memory_manager_1abfed9ff4dc52b5952f43c1c43a830372"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">is_cpu</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow13MemoryManager6is_cpuEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Whether this <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a> is tied to the main CPU device. </p>
<p>This shorthand method is very useful when deciding whether a memory address is CPU-accessible. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13MemoryManager15GetBufferReaderENSt10shared_ptrI6BufferEE">
<span id="_CPPv3N5arrow13MemoryManager15GetBufferReaderENSt10shared_ptrI6BufferEE"></span><span id="_CPPv2N5arrow13MemoryManager15GetBufferReaderENSt10shared_ptrI6BufferEE"></span><span id="arrow::MemoryManager::GetBufferReader__std::shared_ptr:Buffer:"></span><span class="target" id="classarrow_1_1_memory_manager_1a95ff2d7345e5892f6f0750fc1b9543a5"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetBufferReader</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buf</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow13MemoryManager15GetBufferReaderENSt10shared_ptrI6BufferEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create a RandomAccessFile to read a particular buffer. </p>
<p>The given buffer must be tied to this <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>.</p>
<p>See also the <a class="reference internal" href="#classarrow_1_1_buffer_1ae2eded44b1379542966cd441a49fe953"><span class="std std-ref">Buffer::GetReader</span></a> shorthand. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13MemoryManager15GetBufferWriterENSt10shared_ptrI6BufferEE">
<span id="_CPPv3N5arrow13MemoryManager15GetBufferWriterENSt10shared_ptrI6BufferEE"></span><span id="_CPPv2N5arrow13MemoryManager15GetBufferWriterENSt10shared_ptrI6BufferEE"></span><span id="arrow::MemoryManager::GetBufferWriter__std::shared_ptr:Buffer:"></span><span class="target" id="classarrow_1_1_memory_manager_1a7888256d7a122d4bbda0b1c6d36efc08"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetBufferWriter</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buf</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow13MemoryManager15GetBufferWriterENSt10shared_ptrI6BufferEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create a OutputStream to write to a particular buffer. </p>
<p>The given buffer must be mutable and tied to this <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>. The returned stream object writes into the buffer’s underlying memory (but it won’t resize it).</p>
<p>See also the <a class="reference internal" href="#classarrow_1_1_buffer_1a3131f10cde81c53e4d6615eb5e4850ec"><span class="std std-ref">Buffer::GetWriter</span></a> shorthand. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13MemoryManager14AllocateBufferE7int64_t">
<span id="_CPPv3N5arrow13MemoryManager14AllocateBufferE7int64_t"></span><span id="_CPPv2N5arrow13MemoryManager14AllocateBufferE7int64_t"></span><span id="arrow::MemoryManager::AllocateBuffer__int64_t"></span><span class="target" id="classarrow_1_1_memory_manager_1af9a8d3491d119faea0e4c9b4581bcb00"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AllocateBuffer</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow13MemoryManager14AllocateBufferE7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a (mutable) <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a>. </p>
<p>The buffer will be allocated in the device’s memory. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13MemoryManager10CopyBufferERKNSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE">
<span id="_CPPv3N5arrow13MemoryManager10CopyBufferERKNSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="_CPPv2N5arrow13MemoryManager10CopyBufferERKNSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="arrow::MemoryManager::CopyBuffer__std::shared_ptr:Buffer:CR.std::shared_ptr:MemoryManager:CR"></span><span class="target" id="classarrow_1_1_memory_manager_1ade50a93d074fd3ccbddad215371784c2"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CopyBuffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">source</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">to</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13MemoryManager10CopyBufferERKNSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Copy a <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> to a destination <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>. </p>
<p>See also the <a class="reference internal" href="#classarrow_1_1_buffer_1a9dcc66ada966d56a9294531e72a0e1d9"><span class="std std-ref">Buffer::Copy</span></a> shorthand. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13MemoryManager10ViewBufferERKNSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE">
<span id="_CPPv3N5arrow13MemoryManager10ViewBufferERKNSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="_CPPv2N5arrow13MemoryManager10ViewBufferERKNSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="arrow::MemoryManager::ViewBuffer__std::shared_ptr:Buffer:CR.std::shared_ptr:MemoryManager:CR"></span><span class="target" id="classarrow_1_1_memory_manager_1ab53a4d3f8077ca1df66a49f904b3ce43"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ViewBuffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">source</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">to</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13MemoryManager10ViewBufferERKNSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Make a no-copy <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> view in a destination <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>. </p>
<p>See also the <a class="reference internal" href="#classarrow_1_1_buffer_1ac4b959d7080e383ab0a9ff54d8dd9fa3"><span class="std std-ref">Buffer::View</span></a> shorthand. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow16CPUMemoryManagerE">
<span id="_CPPv3N5arrow16CPUMemoryManagerE"></span><span id="_CPPv2N5arrow16CPUMemoryManagerE"></span><span id="arrow::CPUMemoryManager"></span><span class="target" id="classarrow_1_1_c_p_u_memory_manager"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">CPUMemoryManager</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><a class="headerlink" href="#_CPPv4N5arrow16CPUMemoryManagerE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow16CPUMemoryManager15GetBufferReaderENSt10shared_ptrI6BufferEE">
<span id="_CPPv3N5arrow16CPUMemoryManager15GetBufferReaderENSt10shared_ptrI6BufferEE"></span><span id="_CPPv2N5arrow16CPUMemoryManager15GetBufferReaderENSt10shared_ptrI6BufferEE"></span><span id="arrow::CPUMemoryManager::GetBufferReader__std::shared_ptr:Buffer:"></span><span class="target" id="classarrow_1_1_c_p_u_memory_manager_1a07924a8c0461e97e98e98c846af8c36c"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetBufferReader</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buf</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow16CPUMemoryManager15GetBufferReaderENSt10shared_ptrI6BufferEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create a RandomAccessFile to read a particular buffer. </p>
<p>The given buffer must be tied to this <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>.</p>
<p>See also the <a class="reference internal" href="#classarrow_1_1_buffer_1ae2eded44b1379542966cd441a49fe953"><span class="std std-ref">Buffer::GetReader</span></a> shorthand. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow16CPUMemoryManager15GetBufferWriterENSt10shared_ptrI6BufferEE">
<span id="_CPPv3N5arrow16CPUMemoryManager15GetBufferWriterENSt10shared_ptrI6BufferEE"></span><span id="_CPPv2N5arrow16CPUMemoryManager15GetBufferWriterENSt10shared_ptrI6BufferEE"></span><span id="arrow::CPUMemoryManager::GetBufferWriter__std::shared_ptr:Buffer:"></span><span class="target" id="classarrow_1_1_c_p_u_memory_manager_1a9e1fcfe610697191b005d836ffce0fcb"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetBufferWriter</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buf</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow16CPUMemoryManager15GetBufferWriterENSt10shared_ptrI6BufferEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create a OutputStream to write to a particular buffer. </p>
<p>The given buffer must be mutable and tied to this <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>. The returned stream object writes into the buffer’s underlying memory (but it won’t resize it).</p>
<p>See also the <a class="reference internal" href="#classarrow_1_1_buffer_1a3131f10cde81c53e4d6615eb5e4850ec"><span class="std std-ref">Buffer::GetWriter</span></a> shorthand. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow16CPUMemoryManager14AllocateBufferE7int64_t">
<span id="_CPPv3N5arrow16CPUMemoryManager14AllocateBufferE7int64_t"></span><span id="_CPPv2N5arrow16CPUMemoryManager14AllocateBufferE7int64_t"></span><span id="arrow::CPUMemoryManager::AllocateBuffer__int64_t"></span><span class="target" id="classarrow_1_1_c_p_u_memory_manager_1aa56db7f8369860e6e4b3795db1af8743"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AllocateBuffer</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow16CPUMemoryManager14AllocateBufferE7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a (mutable) <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a>. </p>
<p>The buffer will be allocated in the device’s memory. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow16CPUMemoryManager4poolEv">
<span id="_CPPv3NK5arrow16CPUMemoryManager4poolEv"></span><span id="_CPPv2NK5arrow16CPUMemoryManager4poolEv"></span><span id="arrow::CPUMemoryManager::poolC"></span><span class="target" id="classarrow_1_1_c_p_u_memory_manager_1a9e2959997a429add03ba6d58f364d1be"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">pool</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow16CPUMemoryManager4poolEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return the <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> associated with this <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>. </p>
</dd></dl>
</div>
</dd></dl>
</div>
<div class="section" id="buffers">
<h2>Buffers<a class="headerlink" href="#buffers" title="Permalink to this headline"></a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6BufferE">
<span id="_CPPv3N5arrow6BufferE"></span><span id="_CPPv2N5arrow6BufferE"></span><span id="arrow::Buffer"></span><span class="target" id="classarrow_1_1_buffer"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">Buffer</span></span></span><a class="headerlink" href="#_CPPv4N5arrow6BufferE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Object containing a pointer to a piece of contiguous memory with a particular size. </p>
<p>Buffers have two related notions of length: size and capacity. Size is the number of bytes that might have valid data. Capacity is the number of bytes that were allocated for the buffer in total.</p>
<p>The <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> base class does not own its memory, but subclasses often do.</p>
<p>The following invariant is always true: Size &lt;= Capacity </p>
<p>Subclassed by <a class="reference internal" href="cuda.html#classarrow_1_1cuda_1_1_cuda_buffer"><span class="std std-ref">arrow::cuda::CudaBuffer</span></a>, <a class="reference internal" href="#classarrow_1_1_mutable_buffer"><span class="std std-ref">arrow::MutableBuffer</span></a>, arrow::py::NumPyBuffer, arrow::py::PyBuffer, arrow::py::PyForeignBuffer</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer6BufferEPK7uint8_t7int64_t">
<span id="_CPPv3N5arrow6Buffer6BufferEPK7uint8_t7int64_t"></span><span id="_CPPv2N5arrow6Buffer6BufferEPK7uint8_t7int64_t"></span><span id="arrow::Buffer::Buffer__uint8_tCP.int64_t"></span><span class="target" id="classarrow_1_1_buffer_1a801078c559b0c351f1ca5a6b6a04488f"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Buffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer6BufferEPK7uint8_t7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct from buffer and size without copying memory. </p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The passed memory must be kept alive through some other means </p>
</div>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong><strong>[in]</strong> a memory buffer </p></li>
<li><p><strong>size</strong><strong>[in]</strong> buffer size</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer6BufferEN4util11string_viewE">
<span id="_CPPv3N5arrow6Buffer6BufferEN4util11string_viewE"></span><span id="_CPPv2N5arrow6Buffer6BufferEN4util11string_viewE"></span><span id="arrow::Buffer::Buffer__util::string_view"></span><span class="target" id="classarrow_1_1_buffer_1a5a918801b40b57a959dd9405f87948f2"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Buffer</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">util</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string_view</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">data</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer6BufferEN4util11string_viewE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct from string_view without copying memory. </p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The memory viewed by data must not be deallocated in the lifetime of the <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a>; temporary rvalue strings must be stored in an lvalue somewhere </p>
</div>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>data</strong><strong>[in]</strong> a string_view object</p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer6BufferERKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t">
<span id="_CPPv3N5arrow6Buffer6BufferERKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t"></span><span id="_CPPv2N5arrow6Buffer6BufferERKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t"></span><span id="arrow::Buffer::Buffer__std::shared_ptr:Buffer:CR.int64_tC.int64_tC"></span><span class="target" id="classarrow_1_1_buffer_1af694696afedb9313cf5dc874ffa9a453"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Buffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6Buffer6BufferERKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t" title="arrow::Buffer::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">parent</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer6BufferERKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>An offset into data that is owned by another buffer, but we want to be able to retain a valid pointer to it even after other shared_ptr’s to the parent buffer have been destroyed. </p>
<p>This method makes no assertions about alignment or padding of the buffer but in general we expected buffers to be aligned and padded to 64 bytes. In the future we might add utility methods to help determine if a buffer satisfies this contract. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer11ToHexStringEv">
<span id="_CPPv3N5arrow6Buffer11ToHexStringEv"></span><span id="_CPPv2N5arrow6Buffer11ToHexStringEv"></span><span id="arrow::Buffer::ToHexString"></span><span class="target" id="classarrow_1_1_buffer_1adf6316bf6733c0f308dfa8f6db540b19"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ToHexString</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer11ToHexStringEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct a new std::string with a hexadecimal representation of the buffer. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>std::string </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer6EqualsERK6Buffer7int64_t">
<span id="_CPPv3NK5arrow6Buffer6EqualsERK6Buffer7int64_t"></span><span id="_CPPv2NK5arrow6Buffer6EqualsERK6Buffer7int64_t"></span><span id="arrow::Buffer::Equals__BufferCR.int64_tC"></span><span class="target" id="classarrow_1_1_buffer_1a94918db73183b750716a07133dd8384d"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Equals</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">other</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">nbytes</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer6EqualsERK6Buffer7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return true if both buffers are the same size and contain the same bytes up to the number of compared bytes. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer6EqualsERK6Buffer">
<span id="_CPPv3NK5arrow6Buffer6EqualsERK6Buffer"></span><span id="_CPPv2NK5arrow6Buffer6EqualsERK6Buffer"></span><span id="arrow::Buffer::Equals__BufferCRC"></span><span class="target" id="classarrow_1_1_buffer_1a0d3d3bd95a3297046a6ab24f5e957bfd"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Equals</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">other</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer6EqualsERK6Buffer" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return true if both buffers are the same size and contain the same bytes. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer9CopySliceEK7int64_tK7int64_tP10MemoryPool">
<span id="_CPPv3NK5arrow6Buffer9CopySliceEK7int64_tK7int64_tP10MemoryPool"></span><span id="_CPPv2NK5arrow6Buffer9CopySliceEK7int64_tK7int64_tP10MemoryPool"></span><span id="arrow::Buffer::CopySlice__int64_tC.int64_tC.MemoryPoolPC"></span><span class="target" id="classarrow_1_1_buffer_1a8e6500a2eb6667f2e7ebf0277627d435"></span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CopySlice</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">start</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">nbytes</span></span>, <a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow19default_memory_poolEv" title="arrow::default_memory_pool"><span class="n"><span class="pre">default_memory_pool</span></span></a><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer9CopySliceEK7int64_tK7int64_tP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Copy a section of the buffer into a new <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer11ZeroPaddingEv">
<span id="_CPPv3N5arrow6Buffer11ZeroPaddingEv"></span><span id="_CPPv2N5arrow6Buffer11ZeroPaddingEv"></span><span id="arrow::Buffer::ZeroPadding"></span><span class="target" id="classarrow_1_1_buffer_1a885f7b3329f3adb43a826e9403732a15"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ZeroPadding</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer11ZeroPaddingEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Zero bytes in padding, i.e. bytes between size_ and capacity_. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer8ToStringEv">
<span id="_CPPv3NK5arrow6Buffer8ToStringEv"></span><span id="_CPPv2NK5arrow6Buffer8ToStringEv"></span><span id="arrow::Buffer::ToStringC"></span><span class="target" id="classarrow_1_1_buffer_1a90034bddee753d83af07e97cdd252b8f"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ToString</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer8ToStringEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Copy buffer contents into a new std::string. </p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Can throw std::bad_alloc if buffer is large </p>
</div>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>std::string </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6BuffercvN4util11string_viewEEv">
<span id="_CPPv3NK5arrow6BuffercvN4util11string_viewEEv"></span><span id="_CPPv2NK5arrow6BuffercvN4util11string_viewEEv"></span><span id="arrow::Buffer::castto-util::string_view-operatorC"></span><span class="target" id="classarrow_1_1_buffer_1a3553bee276a12793c601d92789388052"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="k"><span class="pre">operator</span></span><span class="w"> </span><span class="n"><span class="pre">util</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string_view</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6BuffercvN4util11string_viewEEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>View buffer contents as a util::string_view. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>util::string_view </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6BuffercvN4util10bytes_viewEEv">
<span id="_CPPv3NK5arrow6BuffercvN4util10bytes_viewEEv"></span><span id="_CPPv2NK5arrow6BuffercvN4util10bytes_viewEEv"></span><span id="arrow::Buffer::castto-util::bytes_view-operatorC"></span><span class="target" id="classarrow_1_1_buffer_1a63f0eb8387cb5a9717c11e9d5e720cbb"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="k"><span class="pre">operator</span></span><span class="w"> </span><span class="n"><span class="pre">util</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">bytes_view</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6BuffercvN4util10bytes_viewEEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>View buffer contents as a util::bytes_view. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>util::bytes_view </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer4dataEv">
<span id="_CPPv3NK5arrow6Buffer4dataEv"></span><span id="_CPPv2NK5arrow6Buffer4dataEv"></span><span id="arrow::Buffer::dataC"></span><span class="target" id="classarrow_1_1_buffer_1a81c3dd8c11dd804be2ada6df5ce8fad2"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">data</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer4dataEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a pointer to the buffer’s data. </p>
<p>The buffer has to be a CPU buffer (<code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1ad349be0b3ddf33c20e96501ad64e1ff6"><span class="std std-ref"><span class="pre">is_cpu()</span></span></a></code> is true). Otherwise, an assertion may be thrown or a null pointer may be returned.</p>
<p>To get the buffer’s data address regardless of its device, call <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1a48683d9fd81454ba10ea0046775f38f3"><span class="std std-ref"><span class="pre">address()</span></span></a></code>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer12mutable_dataEv">
<span id="_CPPv3N5arrow6Buffer12mutable_dataEv"></span><span id="_CPPv2N5arrow6Buffer12mutable_dataEv"></span><span id="arrow::Buffer::mutable_data"></span><span class="target" id="classarrow_1_1_buffer_1a5a9cb9324d3f7e323eb070b553c925aa"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">mutable_data</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer12mutable_dataEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a writable pointer to the buffer’s data. </p>
<p>The buffer has to be a mutable CPU buffer (<code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1ad349be0b3ddf33c20e96501ad64e1ff6"><span class="std std-ref"><span class="pre">is_cpu()</span></span></a></code> and <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1a8244f9c354364788161f11bedc6f2ab9"><span class="std std-ref"><span class="pre">is_mutable()</span></span></a></code> are true). Otherwise, an assertion may be thrown or a null pointer may be returned.</p>
<p>To get the buffer’s mutable data address regardless of its device, call <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1ab7a69ac4d88bd02c39fbe57225ff387a"><span class="std std-ref"><span class="pre">mutable_address()</span></span></a></code>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer7addressEv">
<span id="_CPPv3NK5arrow6Buffer7addressEv"></span><span id="_CPPv2NK5arrow6Buffer7addressEv"></span><span id="arrow::Buffer::addressC"></span><span class="target" id="classarrow_1_1_buffer_1a48683d9fd81454ba10ea0046775f38f3"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">uintptr_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">address</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer7addressEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return the device address of the buffer’s data. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer15mutable_addressEv">
<span id="_CPPv3NK5arrow6Buffer15mutable_addressEv"></span><span id="_CPPv2NK5arrow6Buffer15mutable_addressEv"></span><span id="arrow::Buffer::mutable_addressC"></span><span class="target" id="classarrow_1_1_buffer_1ab7a69ac4d88bd02c39fbe57225ff387a"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">uintptr_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">mutable_address</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer15mutable_addressEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a writable device address to the buffer’s data. </p>
<p>The buffer has to be a mutable buffer (<code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1a8244f9c354364788161f11bedc6f2ab9"><span class="std std-ref"><span class="pre">is_mutable()</span></span></a></code> is true). Otherwise, an assertion may be thrown or 0 may be returned. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer4sizeEv">
<span id="_CPPv3NK5arrow6Buffer4sizeEv"></span><span id="_CPPv2NK5arrow6Buffer4sizeEv"></span><span id="arrow::Buffer::sizeC"></span><span class="target" id="classarrow_1_1_buffer_1a2a49871341c300996a39145d22aa8054"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">size</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer4sizeEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return the buffer’s size in bytes. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer8capacityEv">
<span id="_CPPv3NK5arrow6Buffer8capacityEv"></span><span id="_CPPv2NK5arrow6Buffer8capacityEv"></span><span id="arrow::Buffer::capacityC"></span><span class="target" id="classarrow_1_1_buffer_1a4c75902129b5f2fb471fd166907361dc"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">capacity</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer8capacityEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return the buffer’s capacity (number of allocated bytes) </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer6is_cpuEv">
<span id="_CPPv3NK5arrow6Buffer6is_cpuEv"></span><span id="_CPPv2NK5arrow6Buffer6is_cpuEv"></span><span id="arrow::Buffer::is_cpuC"></span><span class="target" id="classarrow_1_1_buffer_1ad349be0b3ddf33c20e96501ad64e1ff6"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">is_cpu</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer6is_cpuEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Whether the buffer is directly CPU-accessible. </p>
<p>If this function returns true, you can read directly from the buffer’s <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1a81c3dd8c11dd804be2ada6df5ce8fad2"><span class="std std-ref"><span class="pre">data()</span></span></a></code> pointer. Otherwise, you’ll have to <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1ac4b959d7080e383ab0a9ff54d8dd9fa3"><span class="std std-ref"><span class="pre">View()</span></span></a></code> or <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1a9dcc66ada966d56a9294531e72a0e1d9"><span class="std std-ref"><span class="pre">Copy()</span></span></a></code> it. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow6Buffer10is_mutableEv">
<span id="_CPPv3NK5arrow6Buffer10is_mutableEv"></span><span id="_CPPv2NK5arrow6Buffer10is_mutableEv"></span><span id="arrow::Buffer::is_mutableC"></span><span class="target" id="classarrow_1_1_buffer_1a8244f9c354364788161f11bedc6f2ab9"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">is_mutable</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow6Buffer10is_mutableEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Whether the buffer is mutable. </p>
<p>If this function returns true, you are allowed to modify buffer contents using the pointer returned by <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1a5a9cb9324d3f7e323eb070b553c925aa"><span class="std std-ref"><span class="pre">mutable_data()</span></span></a></code> or <code class="docutils literal notranslate"><a class="reference internal" href="#classarrow_1_1_buffer_1ab7a69ac4d88bd02c39fbe57225ff387a"><span class="std std-ref"><span class="pre">mutable_address()</span></span></a></code>. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer10FromStringENSt6stringE">
<span id="_CPPv3N5arrow6Buffer10FromStringENSt6stringE"></span><span id="_CPPv2N5arrow6Buffer10FromStringENSt6stringE"></span><span id="arrow::Buffer::FromString__ss"></span><span class="target" id="classarrow_1_1_buffer_1aa88d832230101259ad4f06cbb4c27582"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FromString</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">data</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer10FromStringENSt6stringE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct an immutable buffer that takes ownership of the contents of an std::string (without copying it). </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>data</strong><strong>[in]</strong> a string to own </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>a new <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> instance </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I00EN5arrow6Buffer4WrapENSt10shared_ptrI6BufferEEPK1T8SizeType">
<span id="_CPPv3I00EN5arrow6Buffer4WrapEPK1T8SizeType"></span><span id="_CPPv2I00EN5arrow6Buffer4WrapEPK1T8SizeType"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">T</span></span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SizeType</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classarrow_1_1_buffer_1abd877e4c900427798762d0abaa92b679"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Wrap</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4I00EN5arrow6Buffer4WrapENSt10shared_ptrI6BufferEEPK1T8SizeType" title="arrow::Buffer::Wrap::T"><span class="n"><span class="pre">T</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <a class="reference internal" href="#_CPPv4I00EN5arrow6Buffer4WrapENSt10shared_ptrI6BufferEEPK1T8SizeType" title="arrow::Buffer::Wrap::SizeType"><span class="n"><span class="pre">SizeType</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I00EN5arrow6Buffer4WrapENSt10shared_ptrI6BufferEEPK1T8SizeType" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create buffer referencing typed memory with some length without copying. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong><strong>[in]</strong> the typed memory as C array </p></li>
<li><p><strong>length</strong><strong>[in]</strong> the number of values in the array </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>a new shared_ptr&lt;Buffer&gt; </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow6Buffer4WrapENSt10shared_ptrI6BufferEERKNSt6vectorI1TEE">
<span id="_CPPv3I0EN5arrow6Buffer4WrapERKNSt6vectorI1TEE"></span><span id="_CPPv2I0EN5arrow6Buffer4WrapERKNSt6vectorI1TEE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">T</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classarrow_1_1_buffer_1a62d1926a69dd12ce6821dd8c96eafea2"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Wrap</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4I0EN5arrow6Buffer4WrapENSt10shared_ptrI6BufferEERKNSt6vectorI1TEE" title="arrow::Buffer::Wrap::T"><span class="n"><span class="pre">T</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">data</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5arrow6Buffer4WrapENSt10shared_ptrI6BufferEERKNSt6vectorI1TEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create buffer referencing std::vector with some length without copying. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>data</strong><strong>[in]</strong> the vector to be referenced. If this vector is changed, the buffer may become invalid </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>a new shared_ptr&lt;Buffer&gt; </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer9GetReaderENSt10shared_ptrI6BufferEE">
<span id="_CPPv3N5arrow6Buffer9GetReaderENSt10shared_ptrI6BufferEE"></span><span id="_CPPv2N5arrow6Buffer9GetReaderENSt10shared_ptrI6BufferEE"></span><span id="arrow::Buffer::GetReader__std::shared_ptr:Buffer:"></span><span class="target" id="classarrow_1_1_buffer_1ae2eded44b1379542966cd441a49fe953"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetReader</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer9GetReaderENSt10shared_ptrI6BufferEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Get a RandomAccessFile for reading a buffer. </p>
<p>The returned file object reads from this buffer’s underlying memory. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer9GetWriterENSt10shared_ptrI6BufferEE">
<span id="_CPPv3N5arrow6Buffer9GetWriterENSt10shared_ptrI6BufferEE"></span><span id="_CPPv2N5arrow6Buffer9GetWriterENSt10shared_ptrI6BufferEE"></span><span id="arrow::Buffer::GetWriter__std::shared_ptr:Buffer:"></span><span class="target" id="classarrow_1_1_buffer_1a3131f10cde81c53e4d6615eb5e4850ec"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetWriter</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer9GetWriterENSt10shared_ptrI6BufferEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Get a OutputStream for writing to a buffer. </p>
<p>The buffer must be mutable. The returned stream object writes into the buffer’s underlying memory (but it won’t resize it). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer4CopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE">
<span id="_CPPv3N5arrow6Buffer4CopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="_CPPv2N5arrow6Buffer4CopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="arrow::Buffer::Copy__std::shared_ptr:Buffer:.std::shared_ptr:MemoryManager:CR"></span><span class="target" id="classarrow_1_1_buffer_1a9dcc66ada966d56a9294531e72a0e1d9"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Copy</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">source</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">to</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer4CopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Copy buffer. </p>
<p>The buffer contents will be copied into a new buffer allocated by the given <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>. This function supports cross-device copies. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer4ViewENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE">
<span id="_CPPv3N5arrow6Buffer4ViewENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="_CPPv2N5arrow6Buffer4ViewENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="arrow::Buffer::View__std::shared_ptr:Buffer:.std::shared_ptr:MemoryManager:CR"></span><span class="target" id="classarrow_1_1_buffer_1ac4b959d7080e383ab0a9ff54d8dd9fa3"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">View</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">source</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">to</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer4ViewENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>View buffer. </p>
<p>Return a <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> that reflects this buffer, seen potentially from another device, without making an explicit copy of the contents. The underlying mechanism is typically implemented by the kernel or device driver, and may involve lazy caching of parts of the buffer contents on the destination device’s memory.</p>
<p>If a non-copy view is unsupported for the buffer on the given device, nullptr is returned. An error can be returned if some low-level operation fails (such as an out-of-memory condition). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow6Buffer10ViewOrCopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE">
<span id="_CPPv3N5arrow6Buffer10ViewOrCopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="_CPPv2N5arrow6Buffer10ViewOrCopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE"></span><span id="arrow::Buffer::ViewOrCopy__std::shared_ptr:Buffer:.std::shared_ptr:MemoryManager:CR"></span><span class="target" id="classarrow_1_1_buffer_1ac54ad71b05ab0d1847bc6b8921399752"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ViewOrCopy</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">source</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><span class="n"><span class="pre">MemoryManager</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">to</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow6Buffer10ViewOrCopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>View or copy buffer. </p>
<p>Try to view buffer contents on the given <a class="reference internal" href="#classarrow_1_1_memory_manager"><span class="std std-ref">MemoryManager</span></a>’s device, but fall back to copying if a no-copy view isn’t supported. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13MutableBufferE">
<span id="_CPPv3N5arrow13MutableBufferE"></span><span id="_CPPv2N5arrow13MutableBufferE"></span><span id="arrow::MutableBuffer"></span><span class="target" id="classarrow_1_1_mutable_buffer"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">MutableBuffer</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><a class="headerlink" href="#_CPPv4N5arrow13MutableBufferE" title="Permalink to this definition"></a><br /></dt>
<dd><p>A <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> whose contents can be mutated. May or may not own its data. </p>
<p>Subclassed by <a class="reference internal" href="cuda.html#classarrow_1_1cuda_1_1_cuda_host_buffer"><span class="std std-ref">arrow::cuda::CudaHostBuffer</span></a>, <a class="reference internal" href="#classarrow_1_1_resizable_buffer"><span class="std std-ref">arrow::ResizableBuffer</span></a></p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I00EN5arrow13MutableBuffer4WrapENSt10shared_ptrI6BufferEEP1T8SizeType">
<span id="_CPPv3I00EN5arrow13MutableBuffer4WrapEP1T8SizeType"></span><span id="_CPPv2I00EN5arrow13MutableBuffer4WrapEP1T8SizeType"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">T</span></span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SizeType</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classarrow_1_1_mutable_buffer_1ae06e3a980614bc6db4239e337f721b33"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Wrap</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I00EN5arrow13MutableBuffer4WrapENSt10shared_ptrI6BufferEEP1T8SizeType" title="arrow::MutableBuffer::Wrap::T"><span class="n"><span class="pre">T</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <a class="reference internal" href="#_CPPv4I00EN5arrow13MutableBuffer4WrapENSt10shared_ptrI6BufferEEP1T8SizeType" title="arrow::MutableBuffer::Wrap::SizeType"><span class="n"><span class="pre">SizeType</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I00EN5arrow13MutableBuffer4WrapENSt10shared_ptrI6BufferEEP1T8SizeType" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create buffer referencing typed memory with some length. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong><strong>[in]</strong> the typed memory as C array </p></li>
<li><p><strong>length</strong><strong>[in]</strong> the number of values in the array </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>a new shared_ptr&lt;Buffer&gt; </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow15ResizableBufferE">
<span id="_CPPv3N5arrow15ResizableBufferE"></span><span id="_CPPv2N5arrow15ResizableBufferE"></span><span id="arrow::ResizableBuffer"></span><span class="target" id="classarrow_1_1_resizable_buffer"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">ResizableBuffer</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow13MutableBufferE" title="arrow::MutableBuffer"><span class="n"><span class="pre">MutableBuffer</span></span></a><a class="headerlink" href="#_CPPv4N5arrow15ResizableBufferE" title="Permalink to this definition"></a><br /></dt>
<dd><p>A mutable buffer that can be resized. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow15ResizableBuffer6ResizeEK7int64_tb">
<span id="_CPPv3N5arrow15ResizableBuffer6ResizeEK7int64_tb"></span><span id="_CPPv2N5arrow15ResizableBuffer6ResizeEK7int64_tb"></span><span id="arrow::ResizableBuffer::Resize__int64_tC.b"></span><span class="target" id="classarrow_1_1_resizable_buffer_1ac2d6a69440b5f438f1b02c610622d8f2"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Resize</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_size</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">shrink_to_fit</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow15ResizableBuffer6ResizeEK7int64_tb" title="Permalink to this definition"></a><br /></dt>
<dd><p>Change buffer reported size to indicated size, allocating memory if necessary. </p>
<p>This will ensure that the capacity of the buffer is a multiple of 64 bytes as defined in Layout.md. Consider using ZeroPadding afterwards, to conform to the Arrow layout specification.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>new_size</strong> – The new size for the buffer. </p></li>
<li><p><strong>shrink_to_fit</strong> – Whether to shrink the capacity if new size &lt; current size </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow15ResizableBuffer7ReserveEK7int64_t">
<span id="_CPPv3N5arrow15ResizableBuffer7ReserveEK7int64_t"></span><span id="_CPPv2N5arrow15ResizableBuffer7ReserveEK7int64_t"></span><span id="arrow::ResizableBuffer::Reserve__int64_tC"></span><span class="target" id="classarrow_1_1_resizable_buffer_1ae3e4b7569105c6cd980ab2d10b5bbf73"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Reserve</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_capacity</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow15ResizableBuffer7ReserveEK7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Ensure that buffer has enough memory allocated to fit the indicated capacity (and meets the 64 byte padding requirement in Layout.md). </p>
<p>It does not change buffer’s reported size and doesn’t zero the padding. </p>
</dd></dl>
</div>
</dd></dl>
</div>
<div class="section" id="memory-pools">
<h2>Memory Pools<a class="headerlink" href="#memory-pools" title="Permalink to this headline"></a></h2>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow19default_memory_poolEv">
<span id="_CPPv3N5arrow19default_memory_poolEv"></span><span id="_CPPv2N5arrow19default_memory_poolEv"></span><span id="arrow::default_memory_pool"></span><span class="target" id="namespacearrow_1aebe81d544faaf827b8f32c5a80b99820"></span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">default_memory_pool</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow19default_memory_poolEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return the process-wide default memory pool. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow20jemalloc_memory_poolEPP10MemoryPool">
<span id="_CPPv3N5arrow20jemalloc_memory_poolEPP10MemoryPool"></span><span id="_CPPv2N5arrow20jemalloc_memory_poolEPP10MemoryPool"></span><span id="arrow::jemalloc_memory_pool__MemoryPoolPP"></span><span class="target" id="namespacearrow_1a07e44d557d9f98ba7a42bbcba1fb7698"></span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">jemalloc_memory_pool</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow20jemalloc_memory_poolEPP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a process-wide memory pool based on jemalloc. </p>
<p>May return NotImplemented if jemalloc is not available. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow20mimalloc_memory_poolEPP10MemoryPool">
<span id="_CPPv3N5arrow20mimalloc_memory_poolEPP10MemoryPool"></span><span id="_CPPv2N5arrow20mimalloc_memory_poolEPP10MemoryPool"></span><span id="arrow::mimalloc_memory_pool__MemoryPoolPP"></span><span class="target" id="namespacearrow_1af03def88fd1ab05b0df699df9c3b9754"></span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">mimalloc_memory_pool</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow20mimalloc_memory_poolEPP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a process-wide memory pool based on mimalloc. </p>
<p>May return NotImplemented if mimalloc is not available. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow18system_memory_poolEv">
<span id="_CPPv3N5arrow18system_memory_poolEv"></span><span id="_CPPv2N5arrow18system_memory_poolEv"></span><span id="arrow::system_memory_pool"></span><span class="target" id="namespacearrow_1aab2dcf4f3003c334c3a337d65657e4c5"></span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">system_memory_pool</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow18system_memory_poolEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a process-wide memory pool based on the system allocator. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow10MemoryPoolE">
<span id="_CPPv3N5arrow10MemoryPoolE"></span><span id="_CPPv2N5arrow10MemoryPoolE"></span><span id="arrow::MemoryPool"></span><span class="target" id="classarrow_1_1_memory_pool"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">MemoryPool</span></span></span><a class="headerlink" href="#_CPPv4N5arrow10MemoryPoolE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Base class for memory allocation on the CPU. </p>
<p>Besides tracking the number of allocated bytes, the allocator also should take care of the required 64-byte alignment. </p>
<p>Subclassed by arrow::dataset::jni::ReservationListenableMemoryPool, <a class="reference internal" href="#classarrow_1_1_logging_memory_pool"><span class="std std-ref">arrow::LoggingMemoryPool</span></a>, <a class="reference internal" href="#classarrow_1_1_proxy_memory_pool"><span class="std std-ref">arrow::ProxyMemoryPool</span></a>, <a class="reference internal" href="#classarrow_1_1stl_1_1_s_t_l_memory_pool"><span class="std std-ref">arrow::stl::STLMemoryPool&lt; Allocator &gt;</span></a></p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow10MemoryPool8AllocateE7int64_tPP7uint8_t">
<span id="_CPPv3N5arrow10MemoryPool8AllocateE7int64_tPP7uint8_t"></span><span id="_CPPv2N5arrow10MemoryPool8AllocateE7int64_tPP7uint8_t"></span><span id="arrow::MemoryPool::Allocate__int64_t.uint8_tPP"></span><span class="target" id="classarrow_1_1_memory_pool_1afa452b21a4d401403cc509cc50a384f9"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Allocate</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow10MemoryPool8AllocateE7int64_tPP7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a new memory region of at least size bytes. </p>
<p>The allocated region shall be 64-byte aligned. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow10MemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t">
<span id="_CPPv3N5arrow10MemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t"></span><span id="_CPPv2N5arrow10MemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t"></span><span id="arrow::MemoryPool::Reallocate__int64_t.int64_t.uint8_tPP"></span><span class="target" id="classarrow_1_1_memory_pool_1af64bda5eccc8fa42ce9ae0aba1ad9077"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Reallocate</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">old_size</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_size</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">ptr</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow10MemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Resize an already allocated memory section. </p>
<p>As by default most default allocators on a platform don’t support aligned reallocation, this function can involve a copy of the underlying data. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow10MemoryPool4FreeEP7uint8_t7int64_t">
<span id="_CPPv3N5arrow10MemoryPool4FreeEP7uint8_t7int64_t"></span><span id="_CPPv2N5arrow10MemoryPool4FreeEP7uint8_t7int64_t"></span><span id="arrow::MemoryPool::Free__uint8_tP.int64_t"></span><span class="target" id="classarrow_1_1_memory_pool_1a5a45c822a4ca7b3d8387501acfa69911"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Free</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow10MemoryPool4FreeEP7uint8_t7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Free an allocated region. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>buffer</strong> – Pointer to the start of the allocated memory region </p></li>
<li><p><strong>size</strong> – Allocated size located at buffer. An allocator implementation may use this for tracking the amount of allocated bytes as well as for faster deallocation if supported by its backend. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow10MemoryPool15bytes_allocatedEv">
<span id="_CPPv3NK5arrow10MemoryPool15bytes_allocatedEv"></span><span id="_CPPv2NK5arrow10MemoryPool15bytes_allocatedEv"></span><span id="arrow::MemoryPool::bytes_allocatedC"></span><span class="target" id="classarrow_1_1_memory_pool_1abd12cd4bfb8ce8afcfc7a25d0293cd85"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">bytes_allocated</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK5arrow10MemoryPool15bytes_allocatedEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The number of bytes that were allocated and not yet free’d through this allocator. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow10MemoryPool10max_memoryEv">
<span id="_CPPv3NK5arrow10MemoryPool10max_memoryEv"></span><span id="_CPPv2NK5arrow10MemoryPool10max_memoryEv"></span><span id="arrow::MemoryPool::max_memoryC"></span><span class="target" id="classarrow_1_1_memory_pool_1a4d1fe541389b4afd4d49d727dc3088f0"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">max_memory</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow10MemoryPool10max_memoryEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return peak memory allocation in this memory pool. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Maximum bytes allocated. If not known (or not implemented), returns -1 </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow10MemoryPool12backend_nameEv">
<span id="_CPPv3NK5arrow10MemoryPool12backend_nameEv"></span><span id="_CPPv2NK5arrow10MemoryPool12backend_nameEv"></span><span id="arrow::MemoryPool::backend_nameC"></span><span class="target" id="classarrow_1_1_memory_pool_1a60f07985878503603da92c64ab4ba03c"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">backend_name</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4NK5arrow10MemoryPool12backend_nameEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The name of the backend used by this <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> (e.g. “system” or “jemalloc”). </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow10MemoryPool13CreateDefaultEv">
<span id="_CPPv3N5arrow10MemoryPool13CreateDefaultEv"></span><span id="_CPPv2N5arrow10MemoryPool13CreateDefaultEv"></span><span id="arrow::MemoryPool::CreateDefault"></span><span class="target" id="classarrow_1_1_memory_pool_1a844c3276d2f14daf186ceb9585fe3581"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CreateDefault</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow10MemoryPool13CreateDefaultEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>EXPERIMENTAL. Create a new instance of the default <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a>. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow17LoggingMemoryPoolE">
<span id="_CPPv3N5arrow17LoggingMemoryPoolE"></span><span id="_CPPv2N5arrow17LoggingMemoryPoolE"></span><span id="arrow::LoggingMemoryPool"></span><span class="target" id="classarrow_1_1_logging_memory_pool"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">LoggingMemoryPool</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><a class="headerlink" href="#_CPPv4N5arrow17LoggingMemoryPoolE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow17LoggingMemoryPool8AllocateE7int64_tPP7uint8_t">
<span id="_CPPv3N5arrow17LoggingMemoryPool8AllocateE7int64_tPP7uint8_t"></span><span id="_CPPv2N5arrow17LoggingMemoryPool8AllocateE7int64_tPP7uint8_t"></span><span id="arrow::LoggingMemoryPool::Allocate__int64_t.uint8_tPP"></span><span class="target" id="classarrow_1_1_logging_memory_pool_1a3eb03f4e10b9fbf1e06fd72d65b6601c"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Allocate</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow17LoggingMemoryPool8AllocateE7int64_tPP7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a new memory region of at least size bytes. </p>
<p>The allocated region shall be 64-byte aligned. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow17LoggingMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t">
<span id="_CPPv3N5arrow17LoggingMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t"></span><span id="_CPPv2N5arrow17LoggingMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t"></span><span id="arrow::LoggingMemoryPool::Reallocate__int64_t.int64_t.uint8_tPP"></span><span class="target" id="classarrow_1_1_logging_memory_pool_1a3e548a7bc1d434fa30fbe1e43be52a3b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Reallocate</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">old_size</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_size</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">ptr</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow17LoggingMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Resize an already allocated memory section. </p>
<p>As by default most default allocators on a platform don’t support aligned reallocation, this function can involve a copy of the underlying data. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow17LoggingMemoryPool4FreeEP7uint8_t7int64_t">
<span id="_CPPv3N5arrow17LoggingMemoryPool4FreeEP7uint8_t7int64_t"></span><span id="_CPPv2N5arrow17LoggingMemoryPool4FreeEP7uint8_t7int64_t"></span><span id="arrow::LoggingMemoryPool::Free__uint8_tP.int64_t"></span><span class="target" id="classarrow_1_1_logging_memory_pool_1ac68ae6be2a6b8c2c44e0ad6d0c2b0cc8"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Free</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow17LoggingMemoryPool4FreeEP7uint8_t7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Free an allocated region. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>buffer</strong> – Pointer to the start of the allocated memory region </p></li>
<li><p><strong>size</strong> – Allocated size located at buffer. An allocator implementation may use this for tracking the amount of allocated bytes as well as for faster deallocation if supported by its backend. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow17LoggingMemoryPool15bytes_allocatedEv">
<span id="_CPPv3NK5arrow17LoggingMemoryPool15bytes_allocatedEv"></span><span id="_CPPv2NK5arrow17LoggingMemoryPool15bytes_allocatedEv"></span><span id="arrow::LoggingMemoryPool::bytes_allocatedC"></span><span class="target" id="classarrow_1_1_logging_memory_pool_1aa5a4ee8ec0299fea7125d89dc8553a46"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">bytes_allocated</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow17LoggingMemoryPool15bytes_allocatedEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The number of bytes that were allocated and not yet free’d through this allocator. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow17LoggingMemoryPool10max_memoryEv">
<span id="_CPPv3NK5arrow17LoggingMemoryPool10max_memoryEv"></span><span id="_CPPv2NK5arrow17LoggingMemoryPool10max_memoryEv"></span><span id="arrow::LoggingMemoryPool::max_memoryC"></span><span class="target" id="classarrow_1_1_logging_memory_pool_1af41a546412c98aa4439b53ec4df257bf"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">max_memory</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow17LoggingMemoryPool10max_memoryEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return peak memory allocation in this memory pool. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Maximum bytes allocated. If not known (or not implemented), returns -1 </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow17LoggingMemoryPool12backend_nameEv">
<span id="_CPPv3NK5arrow17LoggingMemoryPool12backend_nameEv"></span><span id="_CPPv2NK5arrow17LoggingMemoryPool12backend_nameEv"></span><span id="arrow::LoggingMemoryPool::backend_nameC"></span><span class="target" id="classarrow_1_1_logging_memory_pool_1a446cdea471c19b84c1494727f6321eaf"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">backend_name</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow17LoggingMemoryPool12backend_nameEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The name of the backend used by this <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> (e.g. “system” or “jemalloc”). </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow15ProxyMemoryPoolE">
<span id="_CPPv3N5arrow15ProxyMemoryPoolE"></span><span id="_CPPv2N5arrow15ProxyMemoryPoolE"></span><span id="arrow::ProxyMemoryPool"></span><span class="target" id="classarrow_1_1_proxy_memory_pool"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">ProxyMemoryPool</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><a class="headerlink" href="#_CPPv4N5arrow15ProxyMemoryPoolE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Derived class for memory allocation. </p>
<p>Tracks the number of bytes and maximum memory allocated through its direct calls. Actual allocation is delegated to <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> class. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow15ProxyMemoryPool8AllocateE7int64_tPP7uint8_t">
<span id="_CPPv3N5arrow15ProxyMemoryPool8AllocateE7int64_tPP7uint8_t"></span><span id="_CPPv2N5arrow15ProxyMemoryPool8AllocateE7int64_tPP7uint8_t"></span><span id="arrow::ProxyMemoryPool::Allocate__int64_t.uint8_tPP"></span><span class="target" id="classarrow_1_1_proxy_memory_pool_1a335a8650da63a1ebf8ecbdf692e512b5"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Allocate</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow15ProxyMemoryPool8AllocateE7int64_tPP7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a new memory region of at least size bytes. </p>
<p>The allocated region shall be 64-byte aligned. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow15ProxyMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t">
<span id="_CPPv3N5arrow15ProxyMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t"></span><span id="_CPPv2N5arrow15ProxyMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t"></span><span id="arrow::ProxyMemoryPool::Reallocate__int64_t.int64_t.uint8_tPP"></span><span class="target" id="classarrow_1_1_proxy_memory_pool_1a6e21a87edb6fac307950ba03900ea5cc"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Reallocate</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">old_size</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_size</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">ptr</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow15ProxyMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Resize an already allocated memory section. </p>
<p>As by default most default allocators on a platform don’t support aligned reallocation, this function can involve a copy of the underlying data. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow15ProxyMemoryPool4FreeEP7uint8_t7int64_t">
<span id="_CPPv3N5arrow15ProxyMemoryPool4FreeEP7uint8_t7int64_t"></span><span id="_CPPv2N5arrow15ProxyMemoryPool4FreeEP7uint8_t7int64_t"></span><span id="arrow::ProxyMemoryPool::Free__uint8_tP.int64_t"></span><span class="target" id="classarrow_1_1_proxy_memory_pool_1ac93a0a8e3f1c5274ecee4d59499a6888"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Free</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow15ProxyMemoryPool4FreeEP7uint8_t7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Free an allocated region. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>buffer</strong> – Pointer to the start of the allocated memory region </p></li>
<li><p><strong>size</strong> – Allocated size located at buffer. An allocator implementation may use this for tracking the amount of allocated bytes as well as for faster deallocation if supported by its backend. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow15ProxyMemoryPool15bytes_allocatedEv">
<span id="_CPPv3NK5arrow15ProxyMemoryPool15bytes_allocatedEv"></span><span id="_CPPv2NK5arrow15ProxyMemoryPool15bytes_allocatedEv"></span><span id="arrow::ProxyMemoryPool::bytes_allocatedC"></span><span class="target" id="classarrow_1_1_proxy_memory_pool_1ae067aaf2cbe1dd6ea54ec01d835131cc"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">bytes_allocated</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow15ProxyMemoryPool15bytes_allocatedEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The number of bytes that were allocated and not yet free’d through this allocator. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow15ProxyMemoryPool10max_memoryEv">
<span id="_CPPv3NK5arrow15ProxyMemoryPool10max_memoryEv"></span><span id="_CPPv2NK5arrow15ProxyMemoryPool10max_memoryEv"></span><span id="arrow::ProxyMemoryPool::max_memoryC"></span><span class="target" id="classarrow_1_1_proxy_memory_pool_1a0369b487efeb564ff40ed1101d86e8ad"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">max_memory</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow15ProxyMemoryPool10max_memoryEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return peak memory allocation in this memory pool. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Maximum bytes allocated. If not known (or not implemented), returns -1 </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow15ProxyMemoryPool12backend_nameEv">
<span id="_CPPv3NK5arrow15ProxyMemoryPool12backend_nameEv"></span><span id="_CPPv2NK5arrow15ProxyMemoryPool12backend_nameEv"></span><span id="arrow::ProxyMemoryPool::backend_nameC"></span><span class="target" id="classarrow_1_1_proxy_memory_pool_1ac2eefc2b95c22f393fb6212954737c3f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">backend_name</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow15ProxyMemoryPool12backend_nameEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The name of the backend used by this <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> (e.g. “system” or “jemalloc”). </p>
</dd></dl>
</div>
</dd></dl>
</div>
<div class="section" id="allocation-functions">
<h2>Allocation Functions<a class="headerlink" href="#allocation-functions" title="Permalink to this headline"></a></h2>
<p>These functions allocate a buffer from a particular memory pool.</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv414AllocateBufferK7int64_tP10MemoryPool">
<span id="_CPPv314AllocateBufferK7int64_tP10MemoryPool"></span><span id="_CPPv214AllocateBufferK7int64_tP10MemoryPool"></span><span id="AllocateBuffer__int64_tC.MemoryPoolP"></span><span class="target" id="group__buffer-allocation-functions_1gab7eeff2b27bb71cb821a1005d1d0a9be"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AllocateBuffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414AllocateBufferK7int64_tP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a fixed size mutable buffer from a memory pool, zero its padding. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>size</strong><strong>[in]</strong> size of buffer to allocate </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> a memory pool </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv423AllocateResizableBufferK7int64_tP10MemoryPool">
<span id="_CPPv323AllocateResizableBufferK7int64_tP10MemoryPool"></span><span id="_CPPv223AllocateResizableBufferK7int64_tP10MemoryPool"></span><span id="AllocateResizableBuffer__int64_tC.MemoryPoolP"></span><span class="target" id="group__buffer-allocation-functions_1gaa44d72e6284de08b2171a710a01de2d6"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">ResizableBuffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AllocateResizableBuffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423AllocateResizableBufferK7int64_tP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a resizeable buffer from a memory pool, zero its padding. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>size</strong><strong>[in]</strong> size of buffer to allocate </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> a memory pool </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv414AllocateBitmap7int64_tP10MemoryPool">
<span id="_CPPv314AllocateBitmap7int64_tP10MemoryPool"></span><span id="_CPPv214AllocateBitmap7int64_tP10MemoryPool"></span><span id="AllocateBitmap__int64_t.MemoryPoolP"></span><span class="target" id="group__buffer-allocation-functions_1ga4726342b8bd298b7bf05f741076e7527"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AllocateBitmap</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414AllocateBitmap7int64_tP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a bitmap buffer from a memory pool no guarantee on values is provided. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>length</strong><strong>[in]</strong> size in bits of bitmap to allocate </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> memory pool to allocate memory from </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv414AllocateBitmapP10MemoryPool7int64_tPNSt10shared_ptrI6BufferEE">
<span id="_CPPv314AllocateBitmapP10MemoryPool7int64_tPNSt10shared_ptrI6BufferEE"></span><span id="_CPPv214AllocateBitmapP10MemoryPool7int64_tPNSt10shared_ptrI6BufferEE"></span><span id="AllocateBitmap__MemoryPoolP.int64_t.std::shared_ptr:Buffer:P"></span><span class="target" id="group__buffer-allocation-functions_1ga93c20471c43a7a35eaabf2506d5b533e"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AllocateBitmap</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414AllocateBitmapP10MemoryPool7int64_tPNSt10shared_ptrI6BufferEE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419AllocateEmptyBitmap7int64_tP10MemoryPool">
<span id="_CPPv319AllocateEmptyBitmap7int64_tP10MemoryPool"></span><span id="_CPPv219AllocateEmptyBitmap7int64_tP10MemoryPool"></span><span id="AllocateEmptyBitmap__int64_t.MemoryPoolP"></span><span class="target" id="group__buffer-allocation-functions_1ga4bdacf00a6041fa3825f419698c7c40c"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">AllocateEmptyBitmap</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419AllocateEmptyBitmap7int64_tP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a zero-initialized bitmap buffer from a memory pool. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>length</strong><strong>[in]</strong> size in bits of bitmap to allocate </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> memory pool to allocate memory from </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418ConcatenateBuffersRK12BufferVectorP10MemoryPool">
<span id="_CPPv318ConcatenateBuffersRK12BufferVectorP10MemoryPool"></span><span id="_CPPv218ConcatenateBuffersRK12BufferVectorP10MemoryPool"></span><span id="ConcatenateBuffers__BufferVectorCR.MemoryPoolP"></span><span class="target" id="group__buffer-allocation-functions_1ga614382b33dc47fa784c7a4b3be2c0f59"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConcatenateBuffers</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">BufferVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffers</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418ConcatenateBuffersRK12BufferVectorP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Concatenate multiple buffers into a single buffer. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>buffers</strong><strong>[in]</strong> to be concatenated </p></li>
<li><p><strong>pool</strong><strong>[in]</strong> memory pool to allocate the new buffer from </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418ConcatenateBuffersRK12BufferVectorP10MemoryPoolPNSt10shared_ptrI6BufferEE">
<span id="_CPPv318ConcatenateBuffersRK12BufferVectorP10MemoryPoolPNSt10shared_ptrI6BufferEE"></span><span id="_CPPv218ConcatenateBuffersRK12BufferVectorP10MemoryPoolPNSt10shared_ptrI6BufferEE"></span><span id="ConcatenateBuffers__BufferVectorCR.MemoryPoolP.std::shared_ptr:Buffer:P"></span><span class="target" id="group__buffer-allocation-functions_1ga193a7618d4456e8d4f40d305c8d683f1"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConcatenateBuffers</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">BufferVector</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffers</span></span>, <span class="n"><span class="pre">MemoryPool</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418ConcatenateBuffersRK12BufferVectorP10MemoryPoolPNSt10shared_ptrI6BufferEE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
</div>
<div class="section" id="slicing">
<h2>Slicing<a class="headerlink" href="#slicing" title="Permalink to this headline"></a></h2>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv411SliceBufferRKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t">
<span id="_CPPv311SliceBufferRKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t"></span><span id="_CPPv211SliceBufferRKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t"></span><span id="SliceBuffer__std::shared_ptr:Buffer:CR.int64_tC.int64_tC"></span><span class="target" id="group__buffer-slicing-functions_1ga23386d14ecaa97d5c1c93b53676c34e2"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SliceBuffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv411SliceBufferRKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct a view on a buffer at the given offset and length. </p>
<p>This function cannot fail and does not check for errors (except in debug builds) </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv411SliceBufferRKNSt10shared_ptrI6BufferEEK7int64_t">
<span id="_CPPv311SliceBufferRKNSt10shared_ptrI6BufferEEK7int64_t"></span><span id="_CPPv211SliceBufferRKNSt10shared_ptrI6BufferEEK7int64_t"></span><span id="SliceBuffer__std::shared_ptr:Buffer:CR.int64_tC"></span><span class="target" id="group__buffer-slicing-functions_1gab051c8518e0c9881042fdf8cf1416cbe"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SliceBuffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv411SliceBufferRKNSt10shared_ptrI6BufferEEK7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct a view on a buffer at the given offset, up to the buffer’s end. </p>
<p>This function cannot fail and does not check for errors (except in debug builds) </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv415SliceBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t">
<span id="_CPPv315SliceBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t"></span><span id="_CPPv215SliceBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t"></span><span id="SliceBufferSafe__std::shared_ptr:Buffer:CR.int64_t"></span><span class="target" id="group__buffer-slicing-functions_1ga41e702cd989315011f8068b2392faa11"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SliceBufferSafe</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415SliceBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Input-checking version of SliceBuffer. </p>
<p>An Invalid <a class="reference internal" href="support.html#classarrow_1_1_status"><span class="std std-ref">Status</span></a> is returned if the requested slice falls out of bounds. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv415SliceBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t7int64_t">
<span id="_CPPv315SliceBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t7int64_t"></span><span id="_CPPv215SliceBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t7int64_t"></span><span id="SliceBufferSafe__std::shared_ptr:Buffer:CR.int64_t.int64_t"></span><span class="target" id="group__buffer-slicing-functions_1ga4c77ebd80eeabc2efd018f670a4d29ee"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SliceBufferSafe</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415SliceBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Input-checking version of SliceBuffer. </p>
<p>An Invalid <a class="reference internal" href="support.html#classarrow_1_1_status"><span class="std std-ref">Status</span></a> is returned if the requested slice falls out of bounds. Note that unlike SliceBuffer, <code class="docutils literal notranslate"><span class="pre">length</span></code> isn’t clamped to the available buffer size. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418SliceMutableBufferRKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t">
<span id="_CPPv318SliceMutableBufferRKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t"></span><span id="_CPPv218SliceMutableBufferRKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t"></span><span id="SliceMutableBuffer__std::shared_ptr:Buffer:CR.int64_tC.int64_tC"></span><span class="target" id="group__buffer-slicing-functions_1ga44c8f98a2874248eb7d5658ccee5718e"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SliceMutableBuffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418SliceMutableBufferRKNSt10shared_ptrI6BufferEEK7int64_tK7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Like SliceBuffer, but construct a mutable buffer slice. </p>
<p>If the parent buffer is not mutable, behavior is undefined (it may abort in debug builds). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418SliceMutableBufferRKNSt10shared_ptrI6BufferEEK7int64_t">
<span id="_CPPv318SliceMutableBufferRKNSt10shared_ptrI6BufferEEK7int64_t"></span><span id="_CPPv218SliceMutableBufferRKNSt10shared_ptrI6BufferEEK7int64_t"></span><span id="SliceMutableBuffer__std::shared_ptr:Buffer:CR.int64_tC"></span><span class="target" id="group__buffer-slicing-functions_1ga5eccd6ba6b0902e9eab560b0dc960aae"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SliceMutableBuffer</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418SliceMutableBufferRKNSt10shared_ptrI6BufferEEK7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Like SliceBuffer, but construct a mutable buffer slice. </p>
<p>If the parent buffer is not mutable, behavior is undefined (it may abort in debug builds). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv422SliceMutableBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t">
<span id="_CPPv322SliceMutableBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t"></span><span id="_CPPv222SliceMutableBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t"></span><span id="SliceMutableBufferSafe__std::shared_ptr:Buffer:CR.int64_t"></span><span class="target" id="group__buffer-slicing-functions_1gadcdbe1ea905508543893b6f17998931e"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SliceMutableBufferSafe</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422SliceMutableBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Input-checking version of SliceMutableBuffer. </p>
<p>An Invalid <a class="reference internal" href="support.html#classarrow_1_1_status"><span class="std std-ref">Status</span></a> is returned if the requested slice falls out of bounds. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv422SliceMutableBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t7int64_t">
<span id="_CPPv322SliceMutableBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t7int64_t"></span><span id="_CPPv222SliceMutableBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t7int64_t"></span><span id="SliceMutableBufferSafe__std::shared_ptr:Buffer:CR.int64_t.int64_t"></span><span class="target" id="group__buffer-slicing-functions_1ga614f56abf67cf25a269f8c539636e0e3"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SliceMutableBufferSafe</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">offset</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422SliceMutableBufferSafeRKNSt10shared_ptrI6BufferEE7int64_t7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Input-checking version of SliceMutableBuffer. </p>
<p>An Invalid <a class="reference internal" href="support.html#classarrow_1_1_status"><span class="std std-ref">Status</span></a> is returned if the requested slice falls out of bounds. Note that unlike SliceBuffer, <code class="docutils literal notranslate"><span class="pre">length</span></code> isn’t clamped to the available buffer size. </p>
</dd></dl>
</div>
<div class="section" id="buffer-builders">
<h2>Buffer Builders<a class="headerlink" href="#buffer-builders" title="Permalink to this headline"></a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilderE">
<span id="_CPPv3N5arrow13BufferBuilderE"></span><span id="_CPPv2N5arrow13BufferBuilderE"></span><span id="arrow::BufferBuilder"></span><span class="target" id="classarrow_1_1_buffer_builder"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">BufferBuilder</span></span></span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilderE" title="Permalink to this definition"></a><br /></dt>
<dd><p>A class for incrementally building a contiguous chunk of in-memory data. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilder13BufferBuilderENSt10shared_ptrI15ResizableBufferEEP10MemoryPool">
<span id="_CPPv3N5arrow13BufferBuilder13BufferBuilderENSt10shared_ptrI15ResizableBufferEEP10MemoryPool"></span><span id="_CPPv2N5arrow13BufferBuilder13BufferBuilderENSt10shared_ptrI15ResizableBufferEEP10MemoryPool"></span><span id="arrow::BufferBuilder::BufferBuilder__std::shared_ptr:ResizableBuffer:.MemoryPoolP"></span><span class="target" id="classarrow_1_1_buffer_builder_1a9456c4811c844fd67a7d6fe64a4f704c"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BufferBuilder</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow15ResizableBufferE" title="arrow::ResizableBuffer"><span class="n"><span class="pre">ResizableBuffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">buffer</span></span>, <a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow19default_memory_poolEv" title="arrow::default_memory_pool"><span class="n"><span class="pre">default_memory_pool</span></span></a><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilder13BufferBuilderENSt10shared_ptrI15ResizableBufferEEP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Constructs new Builder that will start using the provided buffer until Finish/Reset are called. </p>
<p>The buffer is not resized. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilder6ResizeEK7int64_tb">
<span id="_CPPv3N5arrow13BufferBuilder6ResizeEK7int64_tb"></span><span id="_CPPv2N5arrow13BufferBuilder6ResizeEK7int64_tb"></span><span id="arrow::BufferBuilder::Resize__int64_tC.b"></span><span class="target" id="classarrow_1_1_buffer_builder_1a865e377404f5e80e3b716e654d0f3ec9"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Resize</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_capacity</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">shrink_to_fit</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilder6ResizeEK7int64_tb" title="Permalink to this definition"></a><br /></dt>
<dd><p>Resize the buffer to the nearest multiple of 64 bytes. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>new_capacity</strong> – the new capacity of the of the builder. Will be rounded up to a multiple of 64 bytes for padding</p></li>
<li><p><strong>shrink_to_fit</strong> – if new capacity is smaller than the existing size, reallocate internal buffer. Set to false to avoid reallocations when shrinking the builder. </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><a class="reference internal" href="support.html#classarrow_1_1_status"><span class="std std-ref">Status</span></a> </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilder7ReserveEK7int64_t">
<span id="_CPPv3N5arrow13BufferBuilder7ReserveEK7int64_t"></span><span id="_CPPv2N5arrow13BufferBuilder7ReserveEK7int64_t"></span><span id="arrow::BufferBuilder::Reserve__int64_tC"></span><span class="target" id="classarrow_1_1_buffer_builder_1a1935ba967d1358acf6775cb4a8135640"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Reserve</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">additional_bytes</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilder7ReserveEK7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Ensure that builder can accommodate the additional number of bytes without the need to perform allocations. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>additional_bytes</strong><strong>[in]</strong> number of additional bytes to make space for </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><a class="reference internal" href="support.html#classarrow_1_1_status"><span class="std std-ref">Status</span></a> </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilder6AppendEPKvK7int64_t">
<span id="_CPPv3N5arrow13BufferBuilder6AppendEPKvK7int64_t"></span><span id="_CPPv2N5arrow13BufferBuilder6AppendEPKvK7int64_t"></span><span id="arrow::BufferBuilder::Append__voidCP.int64_tC"></span><span class="target" id="classarrow_1_1_buffer_builder_1a9f2f25ecb063582ceaca0a5b7bd5d128"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Append</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilder6AppendEPKvK7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Append the given data to the buffer. </p>
<p>The buffer is automatically expanded if necessary. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilder6AppendEK7int64_t7uint8_t">
<span id="_CPPv3N5arrow13BufferBuilder6AppendEK7int64_t7uint8_t"></span><span id="_CPPv2N5arrow13BufferBuilder6AppendEK7int64_t7uint8_t"></span><span id="arrow::BufferBuilder::Append__int64_tC.uint8_t"></span><span class="target" id="classarrow_1_1_buffer_builder_1a2936c8b4601d3529af547290bc5b808b"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Append</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">num_copies</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">value</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilder6AppendEK7int64_t7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Append copies of a value to the buffer. </p>
<p>The buffer is automatically expanded if necessary. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilder6FinishEPNSt10shared_ptrI6BufferEEb">
<span id="_CPPv3N5arrow13BufferBuilder6FinishEPNSt10shared_ptrI6BufferEEb"></span><span id="_CPPv2N5arrow13BufferBuilder6FinishEPNSt10shared_ptrI6BufferEEb"></span><span id="arrow::BufferBuilder::Finish__std::shared_ptr:Buffer:P.b"></span><span class="target" id="classarrow_1_1_buffer_builder_1a1d24a7508b789222ab27939a3ac3b481"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Finish</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><span class="n"><span class="pre">Buffer</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">shrink_to_fit</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilder6FinishEPNSt10shared_ptrI6BufferEEb" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return result of builder as a <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> object. </p>
<p>The builder is reset and can be reused afterwards.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>out</strong><strong>[out]</strong> the finalized <a class="reference internal" href="#classarrow_1_1_buffer"><span class="std std-ref">Buffer</span></a> object </p></li>
<li><p><strong>shrink_to_fit</strong> – if the buffer size is smaller than its capacity, reallocate to fit more tightly in memory. Set to false to avoid a reallocation, at the expense of potentially more memory consumption. </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><a class="reference internal" href="support.html#classarrow_1_1_status"><span class="std std-ref">Status</span></a> </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilder6RewindE7int64_t">
<span id="_CPPv3N5arrow13BufferBuilder6RewindE7int64_t"></span><span id="_CPPv2N5arrow13BufferBuilder6RewindE7int64_t"></span><span id="arrow::BufferBuilder::Rewind__int64_t"></span><span class="target" id="classarrow_1_1_buffer_builder_1adb061b4250de92be4822316b207ddcee"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Rewind</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">position</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilder6RewindE7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Set size to a smaller value without modifying builder contents. </p>
<p>For reusable <a class="reference internal" href="#classarrow_1_1_buffer_builder"><span class="std std-ref">BufferBuilder</span></a> classes </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>position</strong><strong>[in]</strong> must be non-negative and less than or equal to the current length() </p>
</dd>
</dl>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow13BufferBuilder12GrowByFactorE7int64_t7int64_t">
<span id="_CPPv3N5arrow13BufferBuilder12GrowByFactorE7int64_t7int64_t"></span><span id="_CPPv2N5arrow13BufferBuilder12GrowByFactorE7int64_t7int64_t"></span><span id="arrow::BufferBuilder::GrowByFactor__int64_t.int64_t"></span><span class="target" id="classarrow_1_1_buffer_builder_1a289bc7d6c344eb6fb1ec7936e99b05bb"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GrowByFactor</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">current_capacity</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_capacity</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow13BufferBuilder12GrowByFactorE7int64_t7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return a capacity expanded by the desired growth factor. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4I00EN5arrow18TypedBufferBuilderE">
<span id="_CPPv3I00EN5arrow18TypedBufferBuilderE"></span><span id="_CPPv2I00EN5arrow18TypedBufferBuilderE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">T</span></span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Enable</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classarrow_1_1_typed_buffer_builder"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">TypedBufferBuilder</span></span></span><a class="headerlink" href="#_CPPv4I00EN5arrow18TypedBufferBuilderE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
</div>
<div class="section" id="stl-integration">
<h2>STL Integration<a class="headerlink" href="#stl-integration" title="Permalink to this headline"></a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow3stl9allocatorE">
<span id="_CPPv3I0EN5arrow3stl9allocatorE"></span><span id="_CPPv2I0EN5arrow3stl9allocatorE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">T</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classarrow_1_1stl_1_1allocator"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">stl</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">allocator</span></span></span><a class="headerlink" href="#_CPPv4I0EN5arrow3stl9allocatorE" title="Permalink to this definition"></a><br /></dt>
<dd><p>A STL allocator delegating allocations to a Arrow <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a>. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow3stl9allocator9allocatorEv">
<span id="_CPPv3N5arrow3stl9allocator9allocatorEv"></span><span id="_CPPv2N5arrow3stl9allocator9allocatorEv"></span><span id="arrow::stl::allocator::allocator"></span><span class="target" id="classarrow_1_1stl_1_1allocator_1a050d3840043ef30ec2648e7dc3b03425"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">allocator</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">noexcept</span></span><a class="headerlink" href="#_CPPv4N5arrow3stl9allocator9allocatorEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct an allocator from the default <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow3stl9allocator9allocatorEP10MemoryPool">
<span id="_CPPv3N5arrow3stl9allocator9allocatorEP10MemoryPool"></span><span id="_CPPv2N5arrow3stl9allocator9allocatorEP10MemoryPool"></span><span id="arrow::stl::allocator::allocator__MemoryPoolP"></span><span class="target" id="classarrow_1_1stl_1_1allocator_1a345b7fb4cd99930d1b606fac634e7ca3"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">allocator</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">pool</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">noexcept</span></span><a class="headerlink" href="#_CPPv4N5arrow3stl9allocator9allocatorEP10MemoryPool" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct an allocator from the given <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a>. </p>
</dd></dl>
</div>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow3stl9allocator6rebindE">
<span id="_CPPv3I0EN5arrow3stl9allocator6rebindE"></span><span id="_CPPv2I0EN5arrow3stl9allocator6rebindE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">U</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="structarrow_1_1stl_1_1allocator_1_1rebind"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">rebind</span></span></span><a class="headerlink" href="#_CPPv4I0EN5arrow3stl9allocator6rebindE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4I0EN5arrow3stl13STLMemoryPoolE">
<span id="_CPPv3I0EN5arrow3stl13STLMemoryPoolE"></span><span id="_CPPv2I0EN5arrow3stl13STLMemoryPoolE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Allocator</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">allocator</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">uint8_t</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classarrow_1_1stl_1_1_s_t_l_memory_pool"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">stl</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">STLMemoryPool</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><span class="n"><span class="pre">MemoryPool</span></span></a><a class="headerlink" href="#_CPPv4I0EN5arrow3stl13STLMemoryPoolE" title="Permalink to this definition"></a><br /></dt>
<dd><p>A <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> implementation delegating allocations to a STL allocator. </p>
<p>Note that STL allocators don’t provide a resizing operation, and therefore any buffer resizes will do a full reallocation and copy. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow3stl13STLMemoryPool13STLMemoryPoolERK9Allocator">
<span id="_CPPv3N5arrow3stl13STLMemoryPool13STLMemoryPoolERK9Allocator"></span><span id="_CPPv2N5arrow3stl13STLMemoryPool13STLMemoryPoolERK9Allocator"></span><span id="arrow::stl::STLMemoryPool::STLMemoryPool__AllocatorCR"></span><span class="target" id="classarrow_1_1stl_1_1_s_t_l_memory_pool_1a04f9e7c6b4995ffad23f3a60f8e34a9f"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">STLMemoryPool</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4I0EN5arrow3stl13STLMemoryPoolE" title="arrow::stl::STLMemoryPool::Allocator"><span class="n"><span class="pre">Allocator</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">alloc</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow3stl13STLMemoryPool13STLMemoryPoolERK9Allocator" title="Permalink to this definition"></a><br /></dt>
<dd><p>Construct a memory pool from the given allocator. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow3stl13STLMemoryPool8AllocateE7int64_tPP7uint8_t">
<span id="_CPPv3N5arrow3stl13STLMemoryPool8AllocateE7int64_tPP7uint8_t"></span><span id="_CPPv2N5arrow3stl13STLMemoryPool8AllocateE7int64_tPP7uint8_t"></span><span id="arrow::stl::STLMemoryPool::Allocate__int64_t.uint8_tPP"></span><span class="target" id="classarrow_1_1stl_1_1_s_t_l_memory_pool_1ae9533be0fa6306cf5045ab53a74bc79b"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Allocate</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow3stl13STLMemoryPool8AllocateE7int64_tPP7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Allocate a new memory region of at least size bytes. </p>
<p>The allocated region shall be 64-byte aligned. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow3stl13STLMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t">
<span id="_CPPv3N5arrow3stl13STLMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t"></span><span id="_CPPv2N5arrow3stl13STLMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t"></span><span id="arrow::stl::STLMemoryPool::Reallocate__int64_t.int64_t.uint8_tPP"></span><span class="target" id="classarrow_1_1stl_1_1_s_t_l_memory_pool_1ae092742351b7986c620370b0b40a6a6f"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Reallocate</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">old_size</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_size</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">ptr</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow3stl13STLMemoryPool10ReallocateE7int64_t7int64_tPP7uint8_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Resize an already allocated memory section. </p>
<p>As by default most default allocators on a platform don’t support aligned reallocation, this function can involve a copy of the underlying data. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow3stl13STLMemoryPool4FreeEP7uint8_t7int64_t">
<span id="_CPPv3N5arrow3stl13STLMemoryPool4FreeEP7uint8_t7int64_t"></span><span id="_CPPv2N5arrow3stl13STLMemoryPool4FreeEP7uint8_t7int64_t"></span><span id="arrow::stl::STLMemoryPool::Free__uint8_tP.int64_t"></span><span class="target" id="classarrow_1_1stl_1_1_s_t_l_memory_pool_1abb27dc235972168141885d167dd4097d"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Free</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">buffer</span></span>, <span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow3stl13STLMemoryPool4FreeEP7uint8_t7int64_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Free an allocated region. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>buffer</strong> – Pointer to the start of the allocated memory region </p></li>
<li><p><strong>size</strong> – Allocated size located at buffer. An allocator implementation may use this for tracking the amount of allocated bytes as well as for faster deallocation if supported by its backend. </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow3stl13STLMemoryPool15bytes_allocatedEv">
<span id="_CPPv3NK5arrow3stl13STLMemoryPool15bytes_allocatedEv"></span><span id="_CPPv2NK5arrow3stl13STLMemoryPool15bytes_allocatedEv"></span><span id="arrow::stl::STLMemoryPool::bytes_allocatedC"></span><span class="target" id="classarrow_1_1stl_1_1_s_t_l_memory_pool_1a5de9db81dd9b9b6c854c7ece6d13e063"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">bytes_allocated</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow3stl13STLMemoryPool15bytes_allocatedEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The number of bytes that were allocated and not yet free’d through this allocator. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow3stl13STLMemoryPool10max_memoryEv">
<span id="_CPPv3NK5arrow3stl13STLMemoryPool10max_memoryEv"></span><span id="_CPPv2NK5arrow3stl13STLMemoryPool10max_memoryEv"></span><span id="arrow::stl::STLMemoryPool::max_memoryC"></span><span class="target" id="classarrow_1_1stl_1_1_s_t_l_memory_pool_1ab65e96df014e555fa03f7e8ba043d003"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">max_memory</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow3stl13STLMemoryPool10max_memoryEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return peak memory allocation in this memory pool. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Maximum bytes allocated. If not known (or not implemented), returns -1 </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow3stl13STLMemoryPool12backend_nameEv">
<span id="_CPPv3NK5arrow3stl13STLMemoryPool12backend_nameEv"></span><span id="_CPPv2NK5arrow3stl13STLMemoryPool12backend_nameEv"></span><span id="arrow::stl::STLMemoryPool::backend_nameC"></span><span class="target" id="classarrow_1_1stl_1_1_s_t_l_memory_pool_1ad90be605fdb1f922aff9a4abfedfad4b"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">backend_name</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow3stl13STLMemoryPool12backend_nameEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>The name of the backend used by this <a class="reference internal" href="#classarrow_1_1_memory_pool"><span class="std std-ref">MemoryPool</span></a> (e.g. “system” or “jemalloc”). </p>
</dd></dl>
</div>
</dd></dl>
</div>
</div>
</div>
<div class='prev-next-bottom'>
<a class='left-prev' id="prev-link" href="support.html" title="previous page">Programming Support</a>
<a class='right-next' id="next-link" href="datatype.html" title="next page">Data Types</a>
</div>
</main>
</div>
</div>
<script src="../../_static/js/index.1c5a1a01449ed65a7b51.js"></script>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '20']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
<footer class="footer mt-5 mt-md-0">
<div class="container">
<div class="footer-item">
<p class="copyright">
&copy; Copyright 2016-2019 Apache Software Foundation.<br/>
</p>
</div>
<div class="footer-item">
<p class="sphinx-version">
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 4.0.2.<br/>
</p>
</div>
</div>
</footer>
<script type="text/javascript" src="/docs/_static/versionwarning.js"></script> </body>
</html>