9 #ifndef FAIR_MQ_SHMEM_UNMANAGEDREGION_H_
10 #define FAIR_MQ_SHMEM_UNMANAGEDREGION_H_
14 #include <FairMQUnmanagedRegion.h>
15 #include <FairMQLogger.h>
17 #include <boost/interprocess/shared_memory_object.hpp>
18 #include <boost/interprocess/mapped_region.hpp>
37 const int64_t userFlags,
38 RegionCallback callback,
39 RegionBulkCallback bulkCallback,
40 const std::string& path =
"",
48 auto result = fManager.CreateRegion(size, userFlags, callback, bulkCallback, path, flags);
49 fRegion = result.first;
50 fRegionId = result.second;
53 void* GetData()
const override {
return fRegion->get_address(); }
54 size_t GetSize()
const override {
return fRegion->get_size(); }
55 uint16_t GetId()
const override {
return fRegionId; }
56 void SetLinger(uint32_t linger)
override { fManager.GetRegion(fRegionId)->SetLinger(linger); }
57 uint32_t GetLinger()
const override {
return fManager.GetRegion(fRegionId)->GetLinger(); }
59 ~UnmanagedRegion()
override { fManager.RemoveRegion(fRegionId); }
63 boost::interprocess::mapped_region* fRegion;