9 #ifndef FAIRMQMESSAGE_H_
10 #define FAIRMQMESSAGE_H_
16 #include <fairmq/Transports.h>
18 using fairmq_free_fn = void(
void* data,
void* hint);
27 explicit operator size_t()
const {
return alignment; }
38 virtual void Rebuild() = 0;
40 virtual void Rebuild(
const size_t size) = 0;
42 virtual void Rebuild(
void* data,
const size_t size, fairmq_free_fn* ffn,
void* hint =
nullptr) = 0;
44 virtual void* GetData()
const = 0;
45 virtual size_t GetSize()
const = 0;
47 virtual bool SetUsedSize(
const size_t size) = 0;
49 virtual fair::mq::Transport GetType()
const = 0;
61 using FairMQMessagePtr = std::unique_ptr<FairMQMessage>;
67 using MessagePtr = FairMQMessagePtr;
68 struct MessageError : std::runtime_error {
using std::runtime_error::runtime_error; };
69 struct MessageBadAlloc : std::runtime_error {
using std::runtime_error::runtime_error; };