summaryrefslogtreecommitdiffstats
path: root/raul/Table.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-07-26 16:19:58 +0000
committerDavid Robillard <d@drobilla.net>2007-07-26 16:19:58 +0000
commitdfcc6b65f887e3afcb3aa35eb7b15b7d7ffb972e (patch)
treef04e684e9bb14c2ac54687a1b0390338b4cd0d50 /raul/Table.hpp
parent47fb95d6086c2c67086316a25b4c0858783d3c2b (diff)
downloadraul-dfcc6b65f887e3afcb3aa35eb7b15b7d7ffb972e.tar.gz
raul-dfcc6b65f887e3afcb3aa35eb7b15b7d7ffb972e.tar.bz2
raul-dfcc6b65f887e3afcb3aa35eb7b15b7d7ffb972e.zip
Fix various Table bugs (and put some way too slow code in there, but hey, it works).
Use PathTable for models on the client side. Implement renaming on client side. git-svn-id: http://svn.drobilla.net/lad/raul@636 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'raul/Table.hpp')
-rw-r--r--raul/Table.hpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/raul/Table.hpp b/raul/Table.hpp
index e4d4fa5..3342bdb 100644
--- a/raul/Table.hpp
+++ b/raul/Table.hpp
@@ -37,6 +37,7 @@ public:
void clear() { _entries.clear(); }
bool empty() const { return _entries.empty(); }
+ void reserve(size_t n) { _entries.reserve(n); }
struct const_iterator {
const_iterator(const Table<K,T>& t, size_t i) : _table(t), _index(i) {}
@@ -76,14 +77,17 @@ public:
void erase(const K& key);
void erase(iterator i);
void erase(iterator start, iterator end);
- void erase(size_t start, size_t end);
+ void erase_by_index(size_t start, size_t end);
+
+ std::vector<std::pair<K, T> > yank(iterator start, iterator end);
+
+ std::pair<iterator, bool> cram(const std::vector<std::pair<K, T> >& range);
const_iterator find(const K& key) const;
iterator find(const K& key);
const_iterator find_range_end(const_iterator left, bool (*comp)(const K&,const K&)) const;
- const_iterator find_in_range(const K& key, const_iterator start, const_iterator end,
- bool (*comp)(const K&,const K&)) const;
+ iterator find_range_end(iterator left, bool (*comp)(const K&,const K&));
T& operator[](const K& key);