.. _program_listing_file_BackendLibfabric_ReceiveEndpoint.hpp: Program Listing for File ReceiveEndpoint.hpp ============================================ |exhale_lsh| :ref:`Return to documentation for file ` (``BackendLibfabric/ReceiveEndpoint.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef NETIO3BACKEND_BACKENDLIBFABRIC_RECEIVEENDPOINT_HPP #define NETIO3BACKEND_BACKENDLIBFABRIC_RECEIVEENDPOINT_HPP #include #include #include #include "ActiveEndpoint.hpp" #include "DomainManager.hpp" #include "Helpers.hpp" #include "ReceiveBufferManager.hpp" #include "SharedReceiveContextManager.hpp" #include "netio3-backend/EventLoop/BaseEventLoop.hpp" #include "netio3-backend/EventLoop/EventSignalHandle.hpp" #include "netio3-backend/Netio3Backend.hpp" namespace netio3::libfabric { class ReceiveEndpoint { public: ReceiveEndpoint(ActiveEndpoint& endpoint, ConnectionParametersRecv conn_params, std::optional& shared_context_manager, DomainManager& domain_manager, BaseEventLoop* event_loop); [[nodiscard]] auto operator<=>(const ReceiveEndpoint& other) const { return m_endpoint.get().get_endpoint().ep <=> other.m_endpoint.get().get_endpoint().ep; } [[nodiscard]] const ActiveEndpoint& get_active_endpoint() const { return m_endpoint.get(); } [[nodiscard]] ActiveEndpoint& get_active_endpoint() { return m_endpoint.get(); } void post_buffer(Buffer* buf) { ZoneScoped; m_buffer_manager_ptr->post_buffer(buf); } private: [[nodiscard]] std::optional create_buffer_manager( DomainManager& domain_manager, BaseEventLoop* event_loop) const; std::reference_wrapper m_endpoint; ConnectionParametersRecv m_conn_params{}; std::optional m_buffer_manager{}; ReceiveBufferManager* m_buffer_manager_ptr{nullptr}; }; } // namespace netio3::libfabric #endif // NETIO3BACKEND_BACKENDLIBFABRIC_RECEIVEENDPOINT_HPP