aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/machina/types.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-01-12 23:38:03 +0000
committerDavid Robillard <d@drobilla.net>2013-01-12 23:38:03 +0000
commit1dad5b5aaa139993fe19e266d08dfc55844e6804 (patch)
treefd2bed5971853b429f1b74369a778a4d608e6925 /src/engine/machina/types.hpp
parent8f048287d06afd7d3c2e90f4a503d7666a9cb6fa (diff)
downloadmachina-1dad5b5aaa139993fe19e266d08dfc55844e6804.tar.gz
machina-1dad5b5aaa139993fe19e266d08dfc55844e6804.tar.bz2
machina-1dad5b5aaa139993fe19e266d08dfc55844e6804.zip
Remove Raul::SharedPtr and switch to std::shared_ptr.
Use project local short type aliases for shared_ptr and friends. Move Raul::Disposable and Raul::Manageable into Raul::Maid. Use sets to store machina nodes and edges to avoid O(n) searches. git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4939 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/machina/types.hpp')
-rw-r--r--src/engine/machina/types.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/engine/machina/types.hpp b/src/engine/machina/types.hpp
index 7603d3c..d71e144 100644
--- a/src/engine/machina/types.hpp
+++ b/src/engine/machina/types.hpp
@@ -18,6 +18,8 @@
#ifndef MACHINA_TYPES_HPP
#define MACHINA_TYPES_HPP
+#include <memory>
+
#include "raul/RingBuffer.hpp"
namespace Machina {
@@ -28,6 +30,30 @@ typedef Raul::RingBuffer UpdateBuffer;
typedef uint32_t URIInt;
+template <class T>
+using SPtr = std::shared_ptr<T>;
+
+template <class T>
+using WPtr = std::weak_ptr<T>;
+
+template <class T>
+void NullDeleter(T* ptr) {}
+
+template<class T, class U>
+SPtr<T> static_ptr_cast(const SPtr<U>& r) {
+ return std::static_pointer_cast<T>(r);
+}
+
+template<class T, class U>
+SPtr<T> dynamic_ptr_cast(const SPtr<U>& r) {
+ return std::dynamic_pointer_cast<T>(r);
+}
+
+template<class T, class U>
+SPtr<T> const_ptr_cast(const SPtr<U>& r) {
+ return std::const_pointer_cast<T>(r);
+}
+
} // namespace Machina
#endif // MACHINA_TYPES_HPP