From ce99856bfa15ca8212ba19b01568d59eeb4e62ca Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Wed, 8 Aug 2012 19:36:40 +0200 Subject: Refactor BufferManager --- src/buffer_manager.hh | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) (limited to 'src/buffer_manager.hh') 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 { public: - typedef std::unordered_map> 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>; + 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; }; } -- cgit v1.2.3