Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions r/R/arrowExports.R

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 11 additions & 7 deletions r/R/compression.R
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,17 @@
#' a list of possible values. `type` may be upper- or lower-cased. Support
#' for compression methods depends on build-time flags for the C++ library.
#' Most builds support at least "gzip" and "snappy".
#' * `compression_level`: compression level, the default value (`NA`) uses the default
#' compression level for the selected compression `type`.
#' @rdname Codec
#' @name Codec
#' @export
Codec <- R6Class("Codec", inherit = Object)
Codec$create <- function(type = "gzip") {
Codec$create <- function(type = "gzip", compression_level = NA) {
if (is.character(type)) {
type <- unique_ptr(Codec, util___Codec__Create(
CompressionType[[match.arg(toupper(type), names(CompressionType))]]
CompressionType[[match.arg(toupper(type), names(CompressionType))]],
compression_level
))
}
assert_is(type, "Codec")
Expand All @@ -62,16 +65,17 @@ Codec$create <- function(type = "gzip") {
#' factory methods instantiate the object and take the following arguments:
#'
#' - `stream` An [InputStream] or [OutputStream], respectively
#' - `codec` A `Codec`
#' - `codec` A `Codec`, either a [Codec][Codec] instance or a string
#' - `compression_level` compression level for when the `codec` argument is given as a string
#'
#' @section Methods:
#'
#' Methods are inherited from [InputStream] and [OutputStream], respectively
#' @export
#' @include arrow-package.R
CompressedOutputStream <- R6Class("CompressedOutputStream", inherit = OutputStream)
CompressedOutputStream$create <- function(stream, codec = "gzip"){
codec <- Codec$create(codec)
CompressedOutputStream$create <- function(stream, codec = "gzip", compression_level = NA){
codec <- Codec$create(codec, compression_level = compression_level)
if (is.character(stream)) {
stream <- FileOutputStream$create(stream)
}
Expand All @@ -84,8 +88,8 @@ CompressedOutputStream$create <- function(stream, codec = "gzip"){
#' @format NULL
#' @export
CompressedInputStream <- R6Class("CompressedInputStream", inherit = InputStream)
CompressedInputStream$create <- function(stream, codec = "gzip"){
codec <- Codec$create(codec)
CompressedInputStream$create <- function(stream, codec = "gzip", compression_level = NA){
codec <- Codec$create(codec, compression_level = compression_level)
if (is.character(stream)) {
stream <- ReadableFile$create(stream)
}
Expand Down
2 changes: 2 additions & 0 deletions r/man/Codec.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion r/man/compression.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions r/src/arrowExports.cpp

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions r/src/compression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@
#if defined(ARROW_R_WITH_ARROW)

// [[arrow::export]]
std::unique_ptr<arrow::util::Codec> util___Codec__Create(arrow::Compression::type codec) {
std::unique_ptr<arrow::util::Codec> util___Codec__Create(arrow::Compression::type codec,
int compression_level) {
std::unique_ptr<arrow::util::Codec> out;
STOP_IF_NOT_OK(arrow::util::Codec::Create(codec, &out));
STOP_IF_NOT_OK(arrow::util::Codec::Create(codec, compression_level, &out));
return out;
}

Expand Down