summaryrefslogtreecommitdiffstats
path: root/raul
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-05-20 00:33:22 +0000
committerDavid Robillard <d@drobilla.net>2011-05-20 00:33:22 +0000
commitbed446e569b815ebb81e8866579a8abcda77358a (patch)
tree325e59b693f8d7b10a7036bf7172701d91c8e4cd /raul
parent3be36824924e886802b495c2131b412277aa5421 (diff)
downloadraul-bed446e569b815ebb81e8866579a8abcda77358a.tar.gz
raul-bed446e569b815ebb81e8866579a8abcda77358a.tar.bz2
raul-bed446e569b815ebb81e8866579a8abcda77358a.zip
Make boost dependency optional. Note Raul compiled with --cpp0x is NOT compatible with Raul compiled without it.
git-svn-id: http://svn.drobilla.net/lad/trunk/raul@3289 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'raul')
-rw-r--r--raul/List.hpp5
-rw-r--r--raul/Maid.hpp8
-rw-r--r--raul/Noncopyable.hpp (renamed from raul/IntrusivePtr.hpp)27
-rw-r--r--raul/Process.hpp5
-rw-r--r--raul/RingBuffer.hpp4
-rw-r--r--raul/SRMWQueue.hpp5
-rw-r--r--raul/SRSWQueue.hpp5
-rw-r--r--raul/Semaphore.hpp4
-rw-r--r--raul/SharedPtr.hpp44
-rw-r--r--raul/Table.hpp5
-rw-r--r--raul/Thread.hpp4
-rw-r--r--raul/TimeSlice.hpp5
-rw-r--r--raul/WeakPtr.hpp10
13 files changed, 60 insertions, 71 deletions
diff --git a/raul/List.hpp b/raul/List.hpp
index 4ef23a1..62f3f1c 100644
--- a/raul/List.hpp
+++ b/raul/List.hpp
@@ -21,11 +21,10 @@
#include <cstddef>
#include <cassert>
-#include <boost/utility.hpp>
-
#include "raul/AtomicInt.hpp"
#include "raul/AtomicPtr.hpp"
#include "raul/Deletable.hpp"
+#include "raul/Noncopyable.hpp"
namespace Raul {
@@ -37,7 +36,7 @@ namespace Raul {
* \ingroup raul
*/
template <typename T>
-class List : public Raul::Deletable, public boost::noncopyable
+class List : Deletable, Noncopyable
{
public:
diff --git a/raul/Maid.hpp b/raul/Maid.hpp
index 3eef6c9..a90bf48 100644
--- a/raul/Maid.hpp
+++ b/raul/Maid.hpp
@@ -18,11 +18,11 @@
#ifndef RAUL_MAID_HPP
#define RAUL_MAID_HPP
-#include <boost/utility.hpp>
-#include "raul/SharedPtr.hpp"
-#include "raul/SRSWQueue.hpp"
#include "raul/Deletable.hpp"
#include "raul/List.hpp"
+#include "raul/Noncopyable.hpp"
+#include "raul/SRSWQueue.hpp"
+#include "raul/SharedPtr.hpp"
namespace Raul {
@@ -42,7 +42,7 @@ namespace Raul {
*
* \ingroup raul
*/
-class Maid : boost::noncopyable
+class Maid : Noncopyable
{
public:
explicit Maid(size_t size);
diff --git a/raul/IntrusivePtr.hpp b/raul/Noncopyable.hpp
index 94ce07a..a81894d 100644
--- a/raul/IntrusivePtr.hpp
+++ b/raul/Noncopyable.hpp
@@ -1,12 +1,12 @@
-/* A "weak" pointer to a resource owned by a shared pointer.
- * Copyright 2007-2011 David Robillard <http://drobilla.net>
+/* This file is part of Raul.
+ * Copyright 2011 David Robillard <http://drobilla.net>
*
- * This is free software; you can redistribute it and/or modify it under the
+ * Raul is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
- * This file is distributed in the hope that it will be useful, but WITHOUT ANY
+ * Raul is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
*
@@ -15,12 +15,21 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef RAUL_INTRUSIVE_PTR_HPP
-#define RAUL_INTRUSIVE_PTR_HPP
+#ifndef RAUL_NONCOPYABLE_HPP
+#define RAUL_NONCOPYABLE_HPP
-#include <boost/intrusive_ptr.hpp>
+namespace Raul {
-#define IntrusivePtr boost::intrusive_ptr
+class Noncopyable {
+protected:
+ Noncopyable() {}
+ ~Noncopyable() {}
-#endif // RAUL_INTRUSIVE_PTR_HPP
+private:
+ Noncopyable(const Noncopyable&);
+ const Noncopyable& operator=(const Noncopyable&);
+};
+} // namespace Raul
+
+#endif // RAUL_NONCOPYABLE_HPP
diff --git a/raul/Process.hpp b/raul/Process.hpp
index d9ec5e0..21e4f33 100644
--- a/raul/Process.hpp
+++ b/raul/Process.hpp
@@ -25,8 +25,7 @@
#include <iostream>
#include <string>
-#include <boost/utility.hpp>
-
+#include "raul/Noncopyable.hpp"
#include "raul/log.hpp"
namespace Raul {
@@ -35,7 +34,7 @@ namespace Raul {
*
* \ingroup raul
*/
-class Process : boost::noncopyable
+class Process : Noncopyable
{
public:
diff --git a/raul/RingBuffer.hpp b/raul/RingBuffer.hpp
index bc17b02..8642514 100644
--- a/raul/RingBuffer.hpp
+++ b/raul/RingBuffer.hpp
@@ -25,7 +25,7 @@
#include <glib.h>
-#include <boost/utility.hpp>
+#include "raul/Noncopyable.hpp"
namespace Raul {
@@ -37,7 +37,7 @@ namespace Raul {
@ingroup raul
*/
-class RingBuffer : public boost::noncopyable {
+class RingBuffer : public Noncopyable {
public:
/**
Create a new RingBuffer.
diff --git a/raul/SRMWQueue.hpp b/raul/SRMWQueue.hpp
index 6680103..2534ba3 100644
--- a/raul/SRMWQueue.hpp
+++ b/raul/SRMWQueue.hpp
@@ -22,9 +22,8 @@
#include <cstdlib>
#include <cmath>
-#include <boost/utility.hpp>
-
#include "raul/AtomicInt.hpp"
+#include "raul/Noncopyable.hpp"
namespace Raul {
@@ -50,7 +49,7 @@ namespace Raul {
* \ingroup raul
*/
template <typename T>
-class SRMWQueue : boost::noncopyable
+class SRMWQueue : Noncopyable
{
public:
explicit SRMWQueue(size_t size);
diff --git a/raul/SRSWQueue.hpp b/raul/SRSWQueue.hpp
index 80758d2..ee7a053 100644
--- a/raul/SRSWQueue.hpp
+++ b/raul/SRSWQueue.hpp
@@ -20,9 +20,8 @@
#include <cassert>
-#include <boost/utility.hpp>
-
#include "raul/AtomicInt.hpp"
+#include "raul/Noncopyable.hpp"
namespace Raul {
@@ -39,7 +38,7 @@ namespace Raul {
* \ingroup raul
*/
template <typename T>
-class SRSWQueue : boost::noncopyable
+class SRSWQueue : Noncopyable
{
public:
/** @param size Size in number of elements */
diff --git a/raul/Semaphore.hpp b/raul/Semaphore.hpp
index 63738c2..7df1817 100644
--- a/raul/Semaphore.hpp
+++ b/raul/Semaphore.hpp
@@ -25,7 +25,7 @@
#include <semaphore.h>
#endif
-#include <boost/utility.hpp>
+#include "raul/Noncopyable.hpp"
namespace Raul {
@@ -33,7 +33,7 @@ namespace Raul {
*
* \ingroup raul
*/
-class Semaphore : boost::noncopyable {
+class Semaphore : Noncopyable {
public:
inline Semaphore(unsigned int initial) {
#ifdef __APPLE__
diff --git a/raul/SharedPtr.hpp b/raul/SharedPtr.hpp
index ef4fea8..6b241f8 100644
--- a/raul/SharedPtr.hpp
+++ b/raul/SharedPtr.hpp
@@ -18,39 +18,21 @@
#ifndef RAUL_SHARED_PTR_HPP
#define RAUL_SHARED_PTR_HPP
-#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
-#include <algorithm>
-#include <cassert>
-#include <cstddef>
-#include <iostream>
-#include <set>
-
-static std::set<void*> shared_ptr_counters;
-
-// Use debug hooks to ensure 2 shared_ptrs never point to the same thing
-namespace boost {
- inline void sp_scalar_constructor_hook(void* px, std::size_t size, void* pn) {
- assert(shared_ptr_counters.find(px) == shared_ptr_counters.end());
- shared_ptr_counters.push_back(px);
- }
-
- inline void sp_scalar_destructor_hook(void* px, std::size_t size, void* pn) {
- shared_ptr_counters.remove(px);
- }
-}
-#endif // BOOST_SP_ENABLE_DEBUG_HOOKS
-
-#include <boost/shared_ptr.hpp>
-
-#ifdef BOOST_AC_USE_PTHREADS
-#error "Boost is using mutexes for shared_ptr reference counting."
-#error "This is VERY slow. Please report your platform to d@drobilla.net"
-#endif
-
template <typename T> void NullDeleter(T* ptr) {}
-#define SharedPtr boost::shared_ptr
-#define PtrCast boost::dynamic_pointer_cast
+#ifdef RAUL_CPP0x
+# include <memory>
+# define SharedPtr std::shared_ptr
+# define PtrCast std::dynamic_pointer_cast
+#else
+# include <boost/shared_ptr.hpp>
+# ifdef BOOST_AC_USE_PTHREADS
+# error "Boost is using mutexes for shared_ptr reference counting."
+# error "This is VERY slow. Please report your platform to d@drobilla.net"
+# endif
+# define SharedPtr boost::shared_ptr
+# define PtrCast boost::dynamic_pointer_cast
+#endif
#endif // RAUL_SHARED_PTR_HPP
diff --git a/raul/Table.hpp b/raul/Table.hpp
index 55b42f8..dd5c1d7 100644
--- a/raul/Table.hpp
+++ b/raul/Table.hpp
@@ -22,8 +22,7 @@
#include <utility>
#include <vector>
-#include <boost/utility.hpp>
-
+#include "raul/Noncopyable.hpp"
#include "raul/SharedPtr.hpp"
//#define TABLE_SORT_DEBUG
@@ -38,7 +37,7 @@ namespace Raul {
* \ingroup raul
*/
template <typename K, typename T>
-class Table : public boost::noncopyable {
+class Table : public Noncopyable {
public:
Table<K, T>() : _entries() {}
Table<K, T>(size_t capacity) : _entries(capacity) {}
diff --git a/raul/Thread.hpp b/raul/Thread.hpp
index 0f5761d..b67531a 100644
--- a/raul/Thread.hpp
+++ b/raul/Thread.hpp
@@ -24,7 +24,7 @@
#include <pthread.h>
-#include <boost/utility.hpp>
+#include "raul/Noncopyable.hpp"
namespace Raul {
@@ -37,7 +37,7 @@ namespace Raul {
*
* \ingroup raul
*/
-class Thread : boost::noncopyable
+class Thread : Noncopyable
{
public:
virtual ~Thread() {
diff --git a/raul/TimeSlice.hpp b/raul/TimeSlice.hpp
index 5e7613e..f75f7fd 100644
--- a/raul/TimeSlice.hpp
+++ b/raul/TimeSlice.hpp
@@ -21,8 +21,7 @@
#include <cassert>
#include <cmath>
-#include <boost/utility.hpp>
-
+#include "raul/Noncopyable.hpp"
#include "raul/TimeStamp.hpp"
namespace Raul {
@@ -47,7 +46,7 @@ namespace Raul {
*
* \ingroup raul
*/
-class TimeSlice : public boost::noncopyable {
+class TimeSlice : public Noncopyable {
public:
TimeSlice(uint32_t rate, uint32_t ppqn, double bpm)
: _tick_rate(rate)
diff --git a/raul/WeakPtr.hpp b/raul/WeakPtr.hpp
index 031c995..001599c 100644
--- a/raul/WeakPtr.hpp
+++ b/raul/WeakPtr.hpp
@@ -18,9 +18,13 @@
#ifndef RAUL_WEAK_PTR_HPP
#define RAUL_WEAK_PTR_HPP
-#include <boost/weak_ptr.hpp>
-
-#define WeakPtr boost::weak_ptr
+#ifdef RAUL_CPP0x
+# include <memory>
+# define WeakPtr std::weak_ptr
+#else
+# include <boost/weak_ptr.hpp>
+# define WeakPtr boost::weak_ptr
+#endif
#endif // RAUL_WEAK_PTR_HPP