#pragma once
#include <cstddef>
#include <cstdint>
#include <memory>
struct apple_rdma {
static std::unique_ptr<apple_rdma> probe(int fd, const uint8_t * target_gid, uint8_t * caps);
~apple_rdma();
bool activate(const uint8_t * caps);
bool send(const void * data, size_t size);
bool recv(void * data, size_t size);
bool flush();
bool broken() const;
private:
struct impl;
explicit apple_rdma(std::unique_ptr<impl> p);
std::unique_ptr<impl> pimpl;
};