/* * DoubleBuffer.hpp * * Created on: 15 мар. 2021 г. * Author: titov */ #ifndef UMLIBRARY_COMMON_DOUBLEBUFFER_HPP_ #define UMLIBRARY_COMMON_DOUBLEBUFFER_HPP_ #include template class DoubleBuffer { bool flag = false; std::pair data; public: void write( V v ); V read() const; }; template inline void DoubleBuffer::write( V v ) { ( flag ? data.second : data.first ) = v; flag = not flag; } template inline V DoubleBuffer::read() const { return flag ? data.first : data.second; } #endif /* UMLIBRARY_COMMON_DOUBLEBUFFER_HPP_ */