23void EnsureValidTunables(std::size_t zippedClusterSize, std::size_t unzippedClusterSize, std::size_t unzippedPageSize)
26 if (zippedClusterSize == 0) {
27 throw RException(
R__FAIL(
"invalid target cluster size: 0"));
29 if (unzippedPageSize == 0) {
30 throw RException(
R__FAIL(
"invalid target page size: 0"));
32 if (zippedClusterSize > unzippedClusterSize) {
33 throw RException(
R__FAIL(
"compressed target cluster size must not be larger than "
34 "maximum uncompressed cluster size"));
36 if (unzippedPageSize > unzippedClusterSize) {
37 throw RException(
R__FAIL(
"target page size must not be larger than "
38 "maximum uncompressed cluster size"));
46 return std::make_unique<RNTupleWriteOptions>(*
this);
#define R__FAIL(msg)
Short-hand to return an RResult<T> in an error state; the RError is implicitly converted into RResult...
Base class for all ROOT issued exceptions.
void SetApproxZippedClusterSize(std::size_t val)
virtual std::unique_ptr< RNTupleWriteOptions > Clone() const
std::size_t fApproxZippedClusterSize
Approximation of the target compressed cluster size.
std::size_t fMaxUnzippedClusterSize
Memory limit for committing a cluster: with very high compression ratio, we need a limit on how large...
std::size_t fApproxUnzippedPageSize
Should be just large enough so that the compression ratio does not benefit much more from larger page...
void SetApproxUnzippedPageSize(std::size_t val)
void SetMaxUnzippedClusterSize(std::size_t val)