23 #ifdef ELEMENTSKERNEL_ELEMENTSKERNEL_STORAGE_IMPL_
36 return std::round(value * static_cast<T>(factor))/
static_cast<T
>(factor);
39 template<std::
size_t max_digits,
typename T>
44 T converted_value = size;
46 if (source_unit != target_unit) {
49 double value =
roundToDigits(static_cast<double>(size_in_bytes)/static_cast<double>(target_factor),
51 converted_value = Elements::numberCast<T>(value);
54 return converted_value;
63 T converted_value = size;
65 if (source_unit != target_unit) {
68 double value =
roundToDigits(static_cast<double>(size_in_bytes)/static_cast<double>(target_factor),
69 static_cast<size_t>(
log10(static_cast<double>(target_factor))));
70 converted_value = Elements::numberCast<T>(value);
73 return converted_value;
81 #endif // ELEMENTSKERNEL_ELEMENTSKERNEL_STORAGE_IMPL_
Casting with the correct (closest) rounding.
#define ELEMENTS_API
Dummy definitions for the backward compatibility mode.
ELEMENTS_API T storageConvert(const T &size, StorageType source_unit, StorageType target_unit)
ELEMENTS_API T roundToDigits(const T &value, const std::size_t &max_digits)
ELEMENTS_API std::map< StorageType, std::int64_t > StorageFactor