summaryrefslogtreecommitdiffstats
path: root/src/arrow/r/R/memory-pool.R
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/arrow/r/R/memory-pool.R61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/arrow/r/R/memory-pool.R b/src/arrow/r/R/memory-pool.R
new file mode 100644
index 000000000..2207ed6be
--- /dev/null
+++ b/src/arrow/r/R/memory-pool.R
@@ -0,0 +1,61 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+#' @include arrow-package.R
+#'
+#' @title class arrow::MemoryPool
+#'
+#' @usage NULL
+#' @format NULL
+#' @docType class
+#'
+#' @section Methods:
+#'
+#' - `backend_name`: one of "jemalloc", "mimalloc", or "system". Alternative
+#' memory allocators are optionally enabled at build time. Windows builds
+#' generally have `mimalloc`, and most others have both `jemalloc` (used by
+#' default) and `mimalloc`. To change memory allocators at runtime, set the
+#' environment variable `ARROW_DEFAULT_MEMORY_POOL` to one of those strings
+#' prior to loading the `arrow` library.
+#' - `bytes_allocated`
+#' - `max_memory`
+#'
+#' @rdname MemoryPool
+#' @name MemoryPool
+#' @keywords internal
+MemoryPool <- R6Class("MemoryPool",
+ inherit = ArrowObject,
+ public = list(
+ # TODO: Allocate
+ # TODO: Reallocate
+ # TODO: Free
+ ),
+ active = list(
+ backend_name = function() MemoryPool__backend_name(self),
+ bytes_allocated = function() MemoryPool__bytes_allocated(self),
+ max_memory = function() MemoryPool__max_memory(self)
+ )
+)
+
+#' Arrow's default [MemoryPool]
+#'
+#' @return the default [MemoryPool]
+#' @export
+#' @keywords internal
+default_memory_pool <- function() {
+ MemoryPool__default()
+}