diff options
author | David Robillard <d@drobilla.net> | 2013-01-12 23:38:03 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-01-12 23:38:03 +0000 |
commit | 1dad5b5aaa139993fe19e266d08dfc55844e6804 (patch) | |
tree | fd2bed5971853b429f1b74369a778a4d608e6925 /src/client | |
parent | 8f048287d06afd7d3c2e90f4a503d7666a9cb6fa (diff) | |
download | machina-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/client')
-rw-r--r-- | src/client/ClientModel.cpp | 18 | ||||
-rw-r--r-- | src/client/ClientModel.hpp | 14 | ||||
-rw-r--r-- | src/client/ClientObject.hpp | 9 |
3 files changed, 20 insertions, 21 deletions
diff --git a/src/client/ClientModel.cpp b/src/client/ClientModel.cpp index c945de7..1cc4d3e 100644 --- a/src/client/ClientModel.cpp +++ b/src/client/ClientModel.cpp @@ -20,20 +20,20 @@ namespace Machina { namespace Client { -SharedPtr<ClientObject> +SPtr<ClientObject> ClientModel::find(uint64_t id) { - SharedPtr<ClientObject> key(new ClientObjectKey(id)); - Objects::iterator i = _objects.find(key); + SPtr<ClientObject> key(new ClientObjectKey(id)); + Objects::iterator i = _objects.find(key); if (i != _objects.end()) { return *i; } else { - return SharedPtr<ClientObject>(); + return SPtr<ClientObject>(); } } void -ClientModel::new_object(SharedPtr<ClientObject> object) +ClientModel::new_object(SPtr<ClientObject> object) { _objects.insert(object); signal_new_object.emit(object); @@ -42,21 +42,21 @@ ClientModel::new_object(SharedPtr<ClientObject> object) void ClientModel::erase_object(uint64_t id) { - SharedPtr<ClientObject> key(new ClientObjectKey(id)); - Objects::iterator i = _objects.find(key); + SPtr<ClientObject> key(new ClientObjectKey(id)); + Objects::iterator i = _objects.find(key); if (i == _objects.end()) { return; } signal_erase_object.emit(*i); - (*i)->set_view(SharedPtr<ClientObject::View>()); + (*i)->set_view(SPtr<ClientObject::View>()); _objects.erase(i); } void ClientModel::property(uint64_t id, URIInt key, const Raul::Atom& value) { - SharedPtr<ClientObject> object = find(id); + SPtr<ClientObject> object = find(id); if (object) { object->set(key, value); } diff --git a/src/client/ClientModel.hpp b/src/client/ClientModel.hpp index 07500db..b629a37 100644 --- a/src/client/ClientModel.hpp +++ b/src/client/ClientModel.hpp @@ -34,25 +34,25 @@ namespace Client { class ClientModel { public: - void new_object(SharedPtr<ClientObject> object); + void new_object(SPtr<ClientObject> object); void erase_object(uint64_t id); void property(uint64_t id, URIInt key, const Raul::Atom& value); - SharedPtr<ClientObject> find(uint64_t id); + SPtr<ClientObject> find(uint64_t id); - sigc::signal< void, SharedPtr<ClientObject> > signal_new_object; - sigc::signal< void, SharedPtr<ClientObject> > signal_erase_object; + sigc::signal< void, SPtr<ClientObject> > signal_new_object; + sigc::signal< void, SPtr<ClientObject> > signal_erase_object; private: struct ClientObjectComparator { - inline bool operator()(SharedPtr<ClientObject> lhs, - SharedPtr<ClientObject> rhs) const { + inline bool operator()(SPtr<ClientObject> lhs, + SPtr<ClientObject> rhs) const { return lhs->id() < rhs->id(); } }; - typedef std::set<SharedPtr<ClientObject>, ClientObjectComparator> Objects; + typedef std::set<SPtr<ClientObject>, ClientObjectComparator> Objects; Objects _objects; }; diff --git a/src/client/ClientObject.hpp b/src/client/ClientObject.hpp index 994a5ba..df8a1dd 100644 --- a/src/client/ClientObject.hpp +++ b/src/client/ClientObject.hpp @@ -23,7 +23,6 @@ #include <sigc++/sigc++.h> #include "raul/Atom.hpp" -#include "raul/SharedPtr.hpp" #include "machina/types.hpp" @@ -52,12 +51,12 @@ public: typedef std::map<URIInt, Raul::Atom> Properties; const Properties& properties() { return _properties; } - SharedPtr<View> view() const { return _view; } - void set_view(SharedPtr<View> view) { _view = view; } + SPtr<View> view() const { return _view; } + void set_view(SPtr<View> view) { _view = view; } private: - uint64_t _id; - SharedPtr<View> _view; + uint64_t _id; + SPtr<View> _view; Properties _properties; }; |