// Copyright 2013 Jan de Cuveland #pragma once #include "TimesliceSource.hpp" #include "TimesliceView.hpp" #include #include #include #include #include //! \file //! This file describes the timeslice-based interface to FLES. namespace fles { //! The TimesliceReveicer class implements the IPC mechanisms to receive a // timeslice. class TimesliceReceiver : public TimesliceSource { public: TimesliceReceiver(const std::string shared_memory_identifier); TimesliceReceiver(const TimesliceReceiver&) = delete; void operator=(const TimesliceReceiver&) = delete; virtual ~TimesliceReceiver() {}; std::unique_ptr get() { return std::unique_ptr(do_get()); }; private: virtual TimesliceView* do_get(); const std::string _shared_memory_identifier; std::unique_ptr _data_shm; std::unique_ptr _desc_shm; std::unique_ptr _data_region; std::unique_ptr _desc_region; std::unique_ptr _work_items_mq; std::shared_ptr _completions_mq; }; } // namespace fles {