// Copyright (2019-2023) Paul Scherrer Institute #ifndef JUNGFRAUJOCH_ZEROCOPYRETURNVALUE_H #define JUNGFRAUJOCH_ZEROCOPYRETURNVALUE_H #include "ThreadSafeFIFO.h" class ZeroCopyReturnValue { uint32_t handle; ThreadSafeFIFO *fifo; public: ZeroCopyReturnValue(ThreadSafeFIFO &in_fifo, uint32_t in_handle) : fifo(&in_fifo), handle(in_handle) {} void release() const { fifo->PutBlocking(handle); } }; #endif //JUNGFRAUJOCH_ZEROCOPYRETURNVALUE_H