diff options
author | David Robillard <d@drobilla.net> | 2007-12-06 19:23:17 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-12-06 19:23:17 +0000 |
commit | c0fbcf4d318bb9a6e95194b982f4eb382d1b1f12 (patch) | |
tree | 9fdde5c45dfa9eec2f2fa84f9fb4422ea422bbcf /raul/DoubleBuffer.hpp | |
parent | 1739aa1b633a592e595fe3bfb56c615e3b76c6f8 (diff) | |
download | raul-c0fbcf4d318bb9a6e95194b982f4eb382d1b1f12.tar.gz raul-c0fbcf4d318bb9a6e95194b982f4eb382d1b1f12.tar.bz2 raul-c0fbcf4d318bb9a6e95194b982f4eb382d1b1f12.zip |
Add copy constructor.
git-svn-id: http://svn.drobilla.net/lad/raul@957 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'raul/DoubleBuffer.hpp')
-rw-r--r-- | raul/DoubleBuffer.hpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/raul/DoubleBuffer.hpp b/raul/DoubleBuffer.hpp index 425bb29..4f3907d 100644 --- a/raul/DoubleBuffer.hpp +++ b/raul/DoubleBuffer.hpp @@ -18,7 +18,6 @@ #ifndef RAUL_DOUBLE_BUFFER_HPP #define RAUL_DOUBLE_BUFFER_HPP -#include <boost/utility.hpp> #include <raul/AtomicInt.hpp> #include <raul/AtomicPtr.hpp> @@ -34,7 +33,7 @@ namespace Raul { * Space: 2*sizeof(T) + sizeof(int) + sizeof(void*) */ template<typename T> -class DoubleBuffer : public boost::noncopyable { +class DoubleBuffer { public: inline DoubleBuffer(T val) @@ -43,8 +42,16 @@ public: _vals[0] = val; _read_val = &_vals[0]; } + + inline DoubleBuffer(const DoubleBuffer& copy) + : _state(RAUL_DB_READ_WRITE) + { + T val = copy.get(); + _vals[0] = val; + _read_val = &_vals[0]; + } - inline T& get() + inline T& get() const { return *_read_val.get(); } |