summaryrefslogtreecommitdiffstats
path: root/raul/DoubleBuffer.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-12-06 19:23:17 +0000
committerDavid Robillard <d@drobilla.net>2007-12-06 19:23:17 +0000
commitc0fbcf4d318bb9a6e95194b982f4eb382d1b1f12 (patch)
tree9fdde5c45dfa9eec2f2fa84f9fb4422ea422bbcf /raul/DoubleBuffer.hpp
parent1739aa1b633a592e595fe3bfb56c615e3b76c6f8 (diff)
downloadraul-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.hpp13
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();
}