/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cloud/blockstore/libs/service/device_handler.cpp
65 строк
2 KB
Daniil Komarevtsev
Add volume tags to NProto::TVolume; Move volume tag names to separate file (#4455)
06 окт 2025, 18:18
Не верифицирован
06 окт 2025, 18:18
7da313e
Код
Авторство
О чём код?
#include "device_handler.h" #include "aligned_device_handler.h" #include "unaligned_device_handler.h" #include <cloud/blockstore/libs/common/constants.h> namespace NCloud::NBlockStore { using namespace NThreading; namespace { //////////////////////////////////////////////////////////////////////////////// constexpr ui32 MaxZeroBlocksSubRequestSize = 2048_MB; //////////////////////////////////////////////////////////////////////////////// struct TDefaultDeviceHandlerFactory final: public IDeviceHandlerFactory { const ui32 MaxSubRequestSize; explicit TDefaultDeviceHandlerFactory(ui32 maxSubRequestSize) : MaxSubRequestSize(maxSubRequestSize) {} IDeviceHandlerPtr CreateDeviceHandler(TDeviceHandlerParams params) override { if (params.MaxZeroBlocksSubRequestSize != 0) { params.MaxZeroBlocksSubRequestSize = std::min( MaxZeroBlocksSubRequestSize, params.MaxZeroBlocksSubRequestSize); } else { params.MaxZeroBlocksSubRequestSize = MaxSubRequestSize; } if (params.UnalignedRequestsDisabled) { return std::make_shared<TAlignedDeviceHandler>( std::move(params), MaxSubRequestSize); } return std::make_shared<TUnalignedDeviceHandler>( std::move(params), MaxSubRequestSize); } }; } // namespace //////////////////////////////////////////////////////////////////////////////// IDeviceHandlerFactoryPtr CreateDefaultDeviceHandlerFactory() { return std::make_shared<TDefaultDeviceHandlerFactory>(MaxSubRequestSize); } IDeviceHandlerFactoryPtr CreateDeviceHandlerFactoryForTesting( ui32 maxSubRequestSize) { return std::make_shared<TDefaultDeviceHandlerFactory>(maxSubRequestSize); } } // namespace NCloud::NBlockStore