9 #ifndef FAIRMQUNMANAGEDREGION_H_
10 #define FAIRMQUNMANAGEDREGION_H_
21 enum class FairMQRegionEvent : int
36 , event(FairMQRegionEvent::created)
39 FairMQRegionInfo(
bool _managed, uint64_t _id,
void* _ptr,
size_t _size, int64_t _flags, FairMQRegionEvent _event)
53 FairMQRegionEvent event;
62 : ptr(p), size(s), hint(h)
66 using FairMQRegionCallback = std::function<void(
void*,
size_t,
void*)>;
67 using FairMQRegionBulkCallback = std::function<void(
const std::vector<FairMQRegionBlock>&)>;
76 virtual void* GetData()
const = 0;
77 virtual size_t GetSize()
const = 0;
78 virtual uint16_t GetId()
const = 0;
79 virtual void SetLinger(uint32_t linger) = 0;
80 virtual uint32_t GetLinger()
const = 0;
91 using FairMQUnmanagedRegionPtr = std::unique_ptr<FairMQUnmanagedRegion>;
93 inline std::ostream& operator<<(std::ostream& os,
const FairMQRegionEvent& event)
96 case FairMQRegionEvent::created:
97 return os <<
"created";
98 case FairMQRegionEvent::destroyed:
99 return os <<
"destroyed";
100 case FairMQRegionEvent::local_only:
101 return os <<
"local_only";
103 return os <<
"unrecognized event";
110 using RegionCallback = FairMQRegionCallback;
111 using RegionBulkCallback = FairMQRegionBulkCallback;
112 using RegionEventCallback = FairMQRegionEventCallback;
113 using RegionEvent = FairMQRegionEvent;
117 using UnmanagedRegionPtr = FairMQUnmanagedRegionPtr;