diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-08-08 19:36:40 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-08-08 19:36:40 +0200 |
| commit | ce99856bfa15ca8212ba19b01568d59eeb4e62ca (patch) | |
| tree | 6bf66f84bc8f6016f280c3c74775a8f0b6a0b66d /src/buffer_manager.hh | |
| parent | b29b75aa81dd9ca50394406569d8837cff562005 (diff) | |
Refactor BufferManager
Diffstat (limited to 'src/buffer_manager.hh')
| -rw-r--r-- | src/buffer_manager.hh | 23 |
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; }; } |
