diff options
author | David Robillard <d@drobilla.net> | 2006-09-14 02:27:02 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2006-09-14 02:27:02 +0000 |
commit | cc384f6f622cc10fd83616256080b80dc2123aaf (patch) | |
tree | 9a5f0d7f14e04ad7effcda8be6b5924b4d61e361 /src/libs/client/ObjectModel.h | |
parent | 5525b33b79b7a920cf374704e67fc6b16fe5f77c (diff) | |
download | ingen-cc384f6f622cc10fd83616256080b80dc2123aaf.tar.gz ingen-cc384f6f622cc10fd83616256080b80dc2123aaf.tar.bz2 ingen-cc384f6f622cc10fd83616256080b80dc2123aaf.zip |
Cleaned up client-side model code significantly (made everything private
so only Store can change the state of models).
Extremely broken, just committing to move code between machines :).
git-svn-id: http://svn.drobilla.net/lad/ingen@133 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/client/ObjectModel.h')
-rw-r--r-- | src/libs/client/ObjectModel.h | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/libs/client/ObjectModel.h b/src/libs/client/ObjectModel.h index 79d551f5..a3cc745c 100644 --- a/src/libs/client/ObjectModel.h +++ b/src/libs/client/ObjectModel.h @@ -50,35 +50,36 @@ typedef map<string, Atom> MetadataMap; class ObjectModel { public: - ObjectModel(const Path& path); - virtual ~ObjectModel(); const Atom& get_metadata(const string& key) const; - void add_metadata(const MetadataMap& data); const MetadataMap& metadata() const { return _metadata; } inline const Path& path() const { return _path; } CountedPtr<ObjectModel> parent() const { return _parent; } - void assimilate(CountedPtr<ObjectModel> model); - // Signals sigc::signal<void, const string&, const Atom&> metadata_update_sig; sigc::signal<void> destroyed_sig; - - // FIXME: make private - void set_metadata(const string& key, const Atom& value) - { _metadata[key] = value; metadata_update_sig.emit(key, value); } - protected: friend class Store; friend class PatchLibrarian; // FIXME: remove + + ObjectModel(const Path& path); + virtual void set_path(const Path& p) { _path = p; } virtual void set_parent(CountedPtr<ObjectModel> p) { _parent = p; } virtual void add_child(CountedPtr<ObjectModel> c) = 0; virtual void remove_child(CountedPtr<ObjectModel> c) = 0; + + void add_metadata(const MetadataMap& data); + + void assimilate(CountedPtr<ObjectModel> model); + + void set_metadata(const string& key, const Atom& value) + { _metadata[key] = value; metadata_update_sig.emit(key, value); } + Path _path; CountedPtr<ObjectModel> _parent; |