* 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 "Common.hh"
#include "SparkFile.hh"
#include "ColumnWriter.hh"
#include <memory>
namespace spark {
struct WriterOptionsPrivate {
uint64_t compressionBlockSize;
CompressionKind compression;
CompressionStrategy compressionStrategy;
MemoryPool* memoryPool;
WriterOptionsPrivate() {
compressionBlockSize = 64 * 1024;
compression = CompressionKind_ZLIB;
compressionStrategy = CompressionStrategy_SPEED;
memoryPool = getDefaultPool();
}
};
WriterOptions::WriterOptions():
privateBits(std::unique_ptr<WriterOptionsPrivate>
(new WriterOptionsPrivate())) {
}
WriterOptions::WriterOptions(const WriterOptions& rhs):
privateBits(std::unique_ptr<WriterOptionsPrivate>
(new WriterOptionsPrivate(*(rhs.privateBits.get())))) {
}
WriterOptions::WriterOptions(WriterOptions& rhs) {
privateBits.swap(rhs.privateBits);
}
WriterOptions& WriterOptions::operator=(const WriterOptions& rhs) {
if (this != &rhs) {
privateBits.reset(new WriterOptionsPrivate(*(rhs.privateBits.get())));
}
return *this;
}
WriterOptions::~WriterOptions() {
}
WriterOptions& WriterOptions::setCompressionBlockSize(uint64_t size) {
privateBits->compressionBlockSize = size;
return *this;
}
uint64_t WriterOptions::getCompressionBlockSize() const {
return privateBits->compressionBlockSize;
}
WriterOptions& WriterOptions::setCompression(CompressionKind comp) {
privateBits->compression = comp;
return *this;
}
CompressionKind WriterOptions::getCompression() const {
return privateBits->compression;
}
WriterOptions& WriterOptions::setCompressionStrategy(
CompressionStrategy strategy) {
privateBits->compressionStrategy = strategy;
return *this;
}
CompressionStrategy WriterOptions::getCompressionStrategy() const {
return privateBits->compressionStrategy;
}
WriterOptions& WriterOptions::setMemoryPool(MemoryPool* memoryPool) {
privateBits->memoryPool = memoryPool;
return *this;
}
MemoryPool* WriterOptions::getMemoryPool() const {
return privateBits->memoryPool;
}
}