hpx/parcelport_libfabric/receiver.hpp

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace parcelset
namespace policies
namespace libfabric
struct receiver

Public Types

typedef libfabric_region_provider region_provider
typedef rma_memory_region<region_provider> region_type
typedef hpx::detail::small_vector<region_type*, 8> zero_copy_vector

Public Functions

receiver(parcelport *pp, fid_ep *endpoint, rma_memory_pool<region_provider> &memory_pool)
receiver(receiver &&other)
receiver &operator=(receiver &&other)
~receiver()
void handle_recv(fi_addr_t const &src_addr, std::uint64_t len)
void pre_post_receive()
void cleanup()

Private Types

typedef hpx::spinlock mutex_type

Private Members

parcelport *pp_
fid_ep *endpoint_
region_type *header_region_
rma_memory_pool<region_provider> *memory_pool_
performance_counter<unsigned int> messages_handled_
performance_counter<unsigned int> acks_received_
performance_counter<unsigned int> msg_plain_
performance_counter<unsigned int> msg_rma_
performance_counter<unsigned int> sent_ack_
performance_counter<unsigned int> rma_reads_
performance_counter<unsigned int> recv_deletes_
boost::lockfree::stack<rma_receiver*, boost::lockfree::capacity<HPX_PARCELPORT_LIBFABRIC_MAX_PREPOSTS>, boost::lockfree::fixed_sized<true>> rma_receivers_
mutex_type active_receivers_mtx_
hpx::lcos::local::detail::condition_variable active_receivers_cv_
hpx::util::atomic_count active_receivers_

Friends

friend hpx::parcelset::policies::libfabric::libfabric_controller