.. _program_listing_file_BackendLibfabric_BackendLibfabric.hpp: Program Listing for File BackendLibfabric.hpp ============================================= |exhale_lsh| :ref:`Return to documentation for file ` (``BackendLibfabric/BackendLibfabric.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef NETIO3BACKEND_BACKENDLIBFABRIC_BACKENDLIBFABRIC_HPP #define NETIO3BACKEND_BACKENDLIBFABRIC_BACKENDLIBFABRIC_HPP #include "ConnectionManager.hpp" #include "netio3-backend/NetworkBuffer.hpp" namespace netio3::libfabric { class BackendLibfabric : public NetworkBackend { public: BackendLibfabric(const NetworkConfig& config, std::shared_ptr evloop); void open_send_endpoint(const EndPointAddress& address, const ConnectionParameters& connection_params) override; [[nodiscard]] EndPointAddress open_listen_endpoint( const EndPointAddress& address, const ConnectionParametersRecv& connection_params) override; void close_send_endpoint(const EndPointAddress& address) override; void close_listen_endpoint(const EndPointAddress& address) override; [[nodiscard]] NetioStatus send_data(const EndPointAddress& address, std::span data, std::span header_data, std::uint64_t key) override; [[nodiscard]] NetioStatus send_data(const EndPointAddress& address, std::span iov, std::span header_data, std::uint64_t key) override; [[nodiscard]] NetioStatus send_data_copy(const EndPointAddress& address, std::span data, std::span header_data, std::uint64_t key) override; [[nodiscard]] NetioStatus send_data_copy(const EndPointAddress& address, std::span iov, std::span header_data, std::uint64_t key) override; [[nodiscard]] NetworkBuffer* get_buffer(const EndPointAddress& address) override; [[nodiscard]] NetioStatus send_buffer(const EndPointAddress& address, NetworkBuffer* buffer) override; [[nodiscard]] std::size_t get_num_available_buffers(const EndPointAddress& address) override; private: static bool check_ip_address(const EndPointAddress& address); std::shared_ptr m_connection_manager; }; } // namespace netio3::libfabric #endif // NETIO3BACKEND_BACKENDLIBFABRIC_BACKENDLIBFABRIC_HPP