Derecho  0.9
Distributed systems toolkit for RDMA
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
rdma::queue_pair Class Reference

A C++ wrapper for the IB Verbs ibv_qp struct and its associated functions. More...

#include <verbs_helper.hpp>

Inheritance diagram for rdma::queue_pair:
Inheritance graph
[legend]
Collaboration diagram for rdma::queue_pair:
Collaboration graph
[legend]

Public Member Functions

 ~queue_pair ()
 
 queue_pair (size_t remote_index)
 
 queue_pair (size_t remote_index, std::function< void(queue_pair *)> post_recvs)
 
 queue_pair (queue_pair &&)=default
 
bool post_send (const memory_region &mr, size_t offset, size_t length, uint64_t wr_id, uint32_t immediate, const message_type &type)
 
bool post_recv (const memory_region &mr, size_t offset, size_t length, uint64_t wr_id, const message_type &type)
 
bool post_empty_send (uint64_t wr_id, uint32_t immediate, const message_type &type)
 
bool post_empty_recv (uint64_t wr_id, const message_type &type)
 
bool post_write (const memory_region &mr, size_t offset, size_t length, uint64_t wr_id, remote_memory_region remote_mr, size_t remote_offset, const message_type &type, bool signaled=false, bool send_inline=false)
 

Protected Member Functions

 queue_pair ()
 

Protected Attributes

std::unique_ptr< ibv_qp, std::function< void(ibv_qp *)> > qp
 

Friends

class task
 

Detailed Description

A C++ wrapper for the IB Verbs ibv_qp struct and its associated functions.

Instances of this class can only be created after global Verbs initialization has been run, since it depends on global Verbs resources.

Definition at line 106 of file verbs_helper.hpp.

Constructor & Destructor Documentation

◆ queue_pair() [1/4]

rdma::queue_pair::queue_pair ( )
inlineexplicitprotected

Definition at line 109 of file verbs_helper.hpp.

◆ ~queue_pair()

rdma::queue_pair::~queue_pair ( )

Definition at line 562 of file verbs_helper.cpp.

◆ queue_pair() [2/4]

rdma::queue_pair::queue_pair ( size_t  remote_index)
explicit

Definition at line 565 of file verbs_helper.cpp.

◆ queue_pair() [3/4]

rdma::queue_pair::queue_pair ( size_t  remote_index,
std::function< void(queue_pair *)>  post_recvs 
)

Definition at line 571 of file verbs_helper.cpp.

◆ queue_pair() [4/4]

rdma::queue_pair::queue_pair ( queue_pair &&  )
default

Member Function Documentation

◆ post_empty_recv()

bool rdma::queue_pair::post_empty_recv ( uint64_t  wr_id,
const message_type type 
)

Definition at line 725 of file verbs_helper.cpp.

◆ post_empty_send()

bool rdma::queue_pair::post_empty_send ( uint64_t  wr_id,
uint32_t  immediate,
const message_type type 
)

Definition at line 671 of file verbs_helper.cpp.

◆ post_recv()

bool rdma::queue_pair::post_recv ( const memory_region mr,
size_t  offset,
size_t  length,
uint64_t  wr_id,
const message_type type 
)

Definition at line 695 of file verbs_helper.cpp.

◆ post_send()

bool rdma::queue_pair::post_send ( const memory_region mr,
size_t  offset,
size_t  length,
uint64_t  wr_id,
uint32_t  immediate,
const message_type type 
)

Definition at line 639 of file verbs_helper.cpp.

◆ post_write()

bool rdma::queue_pair::post_write ( const memory_region mr,
size_t  offset,
size_t  length,
uint64_t  wr_id,
remote_memory_region  remote_mr,
size_t  remote_offset,
const message_type type,
bool  signaled = false,
bool  send_inline = false 
)

Definition at line 745 of file verbs_helper.cpp.

Friends And Related Function Documentation

◆ task

friend class task
friend

Definition at line 111 of file verbs_helper.hpp.

Member Data Documentation

◆ qp

std::unique_ptr<ibv_qp, std::function<void(ibv_qp*)> > rdma::queue_pair::qp
protected

Definition at line 108 of file verbs_helper.hpp.


The documentation for this class was generated from the following files: