/******************************************************************************** * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * * * This software is distributed under the terms of the * * GNU Lesser General Public Licence (LGPL) version 3, * * copied verbatim in the file "LICENSE" * ********************************************************************************/ #ifndef FAIRMQUNMANAGEDREGIONSHM_H_ #define FAIRMQUNMANAGEDREGIONSHM_H_ #include #include "FairMQUnmanagedRegion.h" #include "FairMQLogger.h" #include #include #include // size_t #include class FairMQUnmanagedRegionSHM final : public FairMQUnmanagedRegion { friend class FairMQSocketSHM; friend class FairMQMessageSHM; public: FairMQUnmanagedRegionSHM(fair::mq::shmem::Manager& manager, const size_t size, FairMQRegionCallback callback = nullptr, const std::string& path = "", int flags = 0); void* GetData() const override; size_t GetSize() const override; ~FairMQUnmanagedRegionSHM() override; private: fair::mq::shmem::Manager& fManager; boost::interprocess::mapped_region* fRegion; uint64_t fRegionId; }; #endif /* FAIRMQUNMANAGEDREGIONSHM_H_ */