summaryrefslogtreecommitdiff
path: root/src/buffer_manager.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-08-08 19:36:40 +0200
committerMaxime Coste <frrrwww@gmail.com>2012-08-08 19:36:40 +0200
commitce99856bfa15ca8212ba19b01568d59eeb4e62ca (patch)
tree6bf66f84bc8f6016f280c3c74775a8f0b6a0b66d /src/buffer_manager.hh
parentb29b75aa81dd9ca50394406569d8837cff562005 (diff)
Refactor BufferManager
Diffstat (limited to 'src/buffer_manager.hh')
-rw-r--r--src/buffer_manager.hh23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/buffer_manager.hh b/src/buffer_manager.hh
index 80198942..36373a69 100644
--- a/src/buffer_manager.hh
+++ b/src/buffer_manager.hh
@@ -14,25 +14,16 @@ class Buffer;
class BufferManager : public Singleton<BufferManager>
{
public:
- typedef std::unordered_map<String, safe_ptr<Buffer>> BufferMap;
-
- struct iterator : public BufferMap::const_iterator
- {
- typedef BufferMap::const_iterator parent_type;
-
- iterator() {}
- iterator(const parent_type& other) : parent_type(other) {}
- Buffer& operator*() const { return *(parent_type::operator*().second); }
- Buffer* operator->() const { return parent_type::operator*().second.get(); }
- };
+ using BufferList = std::vector<safe_ptr<Buffer>>;
+ using iterator = BufferList::const_iterator;
~BufferManager();
- void register_buffer(Buffer* buffer);
- void unregister_buffer(Buffer* buffer);
+ void register_buffer(Buffer& buffer);
+ void unregister_buffer(Buffer& buffer);
- iterator begin() const { return iterator(m_buffers.begin()); }
- iterator end() const { return iterator(m_buffers.end()); }
+ iterator begin() const { return m_buffers.cbegin(); }
+ iterator end() const { return m_buffers.cend(); }
size_t count() const { return m_buffers.size(); }
Buffer* get_buffer(const String& name);
@@ -41,7 +32,7 @@ public:
size_t cursor_pos = String::npos);
private:
- BufferMap m_buffers;
+ BufferList m_buffers;
};
}