.. _program_listing_file_BackendLibfabric_SharedBufferManager.cpp: Program Listing for File SharedBufferManager.cpp ================================================ |exhale_lsh| :ref:`Return to documentation for file ` (``BackendLibfabric/SharedBufferManager.cpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include "SharedBufferManager.hpp" #include #include #include "Issues.hpp" netio3::libfabric::SharedBufferManager::SharedBufferManager(const NetworkConfig& config, DomainManager& domain_manager, BaseEventLoop* event_loop) : m_receive_context_manager{create_shared_receive_context(config, domain_manager, event_loop)}, m_send_buffer_manager{create_send_buffer_manager(config, domain_manager)}, m_zero_copy_buffer_manager{create_zero_copy_buffer_manager(config, domain_manager)} {} std::optional netio3::libfabric::SharedBufferManager::create_shared_receive_context(const NetworkConfig& config, DomainManager& domain_manager, BaseEventLoop* event_loop) { ZoneScoped; if (not config.conn_params.recv_params.use_shared_receive_buffers) { return std::nullopt; } try { return SharedReceiveContextManager{domain_manager, config.conn_params.recv_params, domain_manager.get_info(), event_loop}; } catch (const LibfabricSharedReceiveContextError& e) { throw LibfabricDomainError(ERS_HERE, e.message()); } } std::optional netio3::libfabric::SharedBufferManager::create_send_buffer_manager(const NetworkConfig& config, DomainManager& domain_manager) { ZoneScoped; if (not config.conn_params.send_buffered_params.use_shared_send_buffers) { return std::nullopt; } try { return std::optional{ std::in_place, config.conn_params.send_buffered_params, domain_manager}; } catch (const LibFabricBufferError& e) { throw LibfabricDomainError(ERS_HERE, e.message()); } } std::optional netio3::libfabric::SharedBufferManager::create_zero_copy_buffer_manager( const NetworkConfig& config, DomainManager& domain_manager) { ZoneScoped; if (not config.conn_params.send_zero_copy_params.use_shared_send_buffers) { return std::nullopt; } try { return std::optional{ std::in_place, config.conn_params.send_zero_copy_params, domain_manager}; } catch (const LibFabricBufferError& e) { throw LibfabricDomainError(ERS_HERE, e.message()); } }