summaryrefslogtreecommitdiffstats
path: root/src/libs/client/ObjectModel.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-09-14 02:27:02 +0000
committerDavid Robillard <d@drobilla.net>2006-09-14 02:27:02 +0000
commitcc384f6f622cc10fd83616256080b80dc2123aaf (patch)
tree9a5f0d7f14e04ad7effcda8be6b5924b4d61e361 /src/libs/client/ObjectModel.h
parent5525b33b79b7a920cf374704e67fc6b16fe5f77c (diff)
downloadingen-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.h21
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;