/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cloud/blockstore/libs/nbd/error_handler.cpp
85 строк
2 KB
Taras Pashkin
reconfigure nbd socket on client shutdown; resolves #3706 and #3370 (#3707)
19 июн 2025, 18:59
Не верифицирован
19 июн 2025, 18:59
390cb74
Код
Авторство
О чём код?
#include "error_handler.h" #include <util/generic/hash.h> #include <utility> namespace NCloud::NBlockStore::NBD { namespace { //////////////////////////////////////////////////////////////////////////////// struct TErrorHandlerStub : IErrorHandler { void ProcessException(std::exception_ptr) override {} }; //////////////////////////////////////////////////////////////////////////////// struct TErrorHandlerMap : IErrorHandlerMap { THashMap<TString, IErrorHandlerPtr> Handlers; bool Emplace(const TString& socket, IErrorHandlerPtr&& handler) override { return Handlers.emplace(socket, handler).second; } void Erase(const TString& socket) override { Handlers.erase(socket); } IErrorHandlerPtr Get(const TString& socket) override { auto it = Handlers.find(socket); if (it != Handlers.end()) { return it->second; } return CreateErrorHandlerStub(); } }; //////////////////////////////////////////////////////////////////////////////// struct TErrorHandlerMapStub : IErrorHandlerMap { bool Emplace(const TString&, IErrorHandlerPtr&&) override { return true; } void Erase(const TString&) override {} IErrorHandlerPtr Get(const TString&) override { return CreateErrorHandlerStub(); } }; } // namespace //////////////////////////////////////////////////////////////////////////////// IErrorHandlerPtr CreateErrorHandlerStub() { return std::make_shared<TErrorHandlerStub>(); } IErrorHandlerMapPtr CreateErrorHandlerMap() { return std::make_shared<TErrorHandlerMap>(); } IErrorHandlerMapPtr CreateErrorHandlerMapStub() { return std::make_shared<TErrorHandlerMapStub>(); } } // namespace NCloud::NBlockStore::NBD