hpx/parcelport_libfabric/header.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
template<int SIZE>
struct header

Public Types

typedef serialization::serialization_chunk chunktype

Public Functions

template<typename Buffer>
header(Buffer const &buffer, void *tag)
char *chunk_ptr()
detail::chunk_header *chunk_header_ptr()
detail::rma_info *rma_info_ptr()
detail::message_info *message_info_ptr()
detail::message_chunk *message_chunk_ptr()
char *message_ptr()
uint32_t chunk_data_offset() const
uint32_t rma_info_offset() const
uint32_t message_info_offset() const
uint32_t message_offset() const
char *chunk_data()
char *message_data()
bool message_piggy_back()
uint64_t tag()
uint32_t message_size()
std::uint32_t header_length()
void set_message_rdma_info(uint64_t key, const void *addr)
std::uint32_t num_chunks()
std::uint32_t num_zero_copy_chunks()
std::uint32_t num_index_chunks()

Public Static Attributes

constexpr unsigned int header_block_size = sizeof(detail::header_block)
constexpr unsigned int data_size_ = SIZE - header_block_size
const unsigned int chunk_flag = 0x01
const unsigned int message_flag = 0x02
const unsigned int normal_flag = 0x04
const unsigned int zerocopy_flag = 0x08

Private Members

detail::header_block message_header
std::array<char, data_size_> data_

Friends

std::ostream &operator<<(std::ostream &os, header<SIZE> &h)