diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2011-09-08 00:11:48 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2011-09-08 00:11:48 +0000 |
| commit | 535e2005870ce6e0822418307bde22b09b8db3df (patch) | |
| tree | 251446a697f0609e29b28b96484c0bf6bdc25d33 /src/buffer_manager.hh | |
| parent | 511df5b6605b6dd6d350dac4643cd1255771d869 (diff) | |
Add a BufferManager singleton class, handling buffer lifetime
it also provide access to buffers by name
Diffstat (limited to 'src/buffer_manager.hh')
| -rw-r--r-- | src/buffer_manager.hh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/buffer_manager.hh b/src/buffer_manager.hh new file mode 100644 index 00000000..06fb04f0 --- /dev/null +++ b/src/buffer_manager.hh @@ -0,0 +1,32 @@ +#ifndef buffer_manager_hh_INCLUDED +#define buffer_manager_hh_INCLUDED + +#include "buffer.hh" + +#include <unordered_map> +#include <memory> + +namespace Kakoune +{ + +class BufferManager +{ +public: + void register_buffer(Buffer* buffer); + void delete_buffer(Buffer* buffer); + + Buffer* get_buffer(const std::string& name); + + static BufferManager& instance(); + static void delete_instance(); + +private: + BufferManager(); + static BufferManager* ms_instance; + + std::unordered_map<std::string, std::unique_ptr<Buffer>> m_buffers; +}; + +} + +#endif // buffer_manager_hh_INCLUDED |
