summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/EngineStore.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-08-16 03:23:15 +0000
committerDavid Robillard <d@drobilla.net>2008-08-16 03:23:15 +0000
commita8b36b5637acb3fa8eb29ef0f45bd11653f412fa (patch)
tree3a0f0dbef302269f8e509d9f5c2d4c713e00face /src/libs/engine/EngineStore.hpp
parent49e8582cb6720d43389e7d2534be11a4fb0b8959 (diff)
downloadingen-a8b36b5637acb3fa8eb29ef0f45bd11653f412fa.tar.gz
ingen-a8b36b5637acb3fa8eb29ef0f45bd11653f412fa.tar.bz2
ingen-a8b36b5637acb3fa8eb29ef0f45bd11653f412fa.zip
Factor out common store functionality.
Make store is-a Table and ditch store->objects() thing everywhere. Use a separate store in the client (fix ingen -eg). git-svn-id: http://svn.drobilla.net/lad/ingen@1397 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/EngineStore.hpp')
-rw-r--r--src/libs/engine/EngineStore.hpp26
1 files changed, 6 insertions, 20 deletions
diff --git a/src/libs/engine/EngineStore.hpp b/src/libs/engine/EngineStore.hpp
index e128dde8..ad656aeb 100644
--- a/src/libs/engine/EngineStore.hpp
+++ b/src/libs/engine/EngineStore.hpp
@@ -48,32 +48,18 @@ class GraphObjectImpl;
class EngineStore : public Shared::Store
{
public:
- typedef Raul::PathTable< SharedPtr<Shared::GraphObject> > Objects;
-
PatchImpl* find_patch(const Path& path);
NodeImpl* find_node(const Path& path);
PortImpl* find_port(const Path& path);
GraphObjectImpl* find_object(const Path& path);
- Objects::iterator find(const Path& path) { return _objects.find(path); }
-
- Objects::const_iterator children_begin(SharedPtr<Shared::GraphObject> o) const;
- Objects::const_iterator children_end(SharedPtr<Shared::GraphObject> o) const;
-
void add(Shared::GraphObject* o);
- void add(const Table<Path, SharedPtr<Shared::GraphObject> >& family);
- //void add(TreeNode<GraphObjectImpl*>* o);
-
- SharedPtr< Table<Path, SharedPtr<Shared::GraphObject> > > remove(const Path& path);
- SharedPtr< Table<Path, SharedPtr<Shared::GraphObject> > > remove(Objects::iterator i);
- SharedPtr< Table<Path, SharedPtr<Shared::GraphObject> > > remove_children(const Path& path);
- SharedPtr< Table<Path, SharedPtr<Shared::GraphObject> > > remove_children(Objects::iterator i);
-
- const Objects& objects() const { return _objects; }
- Objects& objects() { return _objects; }
-
-private:
- Objects _objects;
+ void add(const Objects& family);
+
+ SharedPtr<Objects> remove(const Path& path);
+ SharedPtr<Objects> remove(Objects::iterator i);
+ SharedPtr<Objects> remove_children(const Path& path);
+ SharedPtr<Objects> remove_children(Objects::iterator i);
};