/******************************************************************************** * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * * * This software is distributed under the terms of the * * GNU Lesser General Public Licence version 3 (LGPL) version 3, * * copied verbatim in the file "LICENSE" * ********************************************************************************/ #ifndef FAIRMQREGIONSHM_H_ #define FAIRMQREGIONSHM_H_ #include "FairMQRegion.h" #include #include #include // size_t #include #include #include class FairMQRegionSHM : public FairMQRegion { friend class FairMQSocketSHM; friend class FairMQMessageSHM; public: FairMQRegionSHM(const size_t size); virtual void* GetData() const override; virtual size_t GetSize() const override; virtual ~FairMQRegionSHM(); private: FairMQRegionSHM(const uint64_t id, bool remote); static std::atomic fInterrupted; std::unique_ptr fShmemObject; std::unique_ptr fRegion; uint64_t fRegionId; std::string fRegionIdStr; bool fRemote; }; #endif /* FAIRMQREGIONSHM_H_ */