From 6dc6110684fe3f7eed3bfa1f632792ab12425fd2 Mon Sep 17 00:00:00 2001 From: Joe Thornber Date: Tue, 8 Nov 2011 10:30:13 +0000 Subject: [PATCH] move deleter to a separate file --- block.h | 1 - cache.h | 13 +++---------- deleter.h | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 deleter.h diff --git a/block.h b/block.h index c6033a6..6bdabf2 100644 --- a/block.h +++ b/block.h @@ -120,7 +120,6 @@ namespace persistent_data { const_buffer &data() const; protected: - friend class block_manager; // FIXME: still needed? block_manager const &bm_; block_ptr block_; unsigned *holders_; diff --git a/cache.h b/cache.h index 604d43b..54251fb 100644 --- a/cache.h +++ b/cache.h @@ -1,6 +1,8 @@ #ifndef CACHE_H #define CACHE_H +#include "deleter.h" + #include #include #include @@ -11,18 +13,9 @@ //---------------------------------------------------------------- namespace base { - // FIXME: move somewhere more useful - template - struct deleter { - void operator()(T *t) { - delete t; - } - }; - // ValueTraits needs to define value_type, key_type and a get_key() // static function. Commonly you will want value_type to be a // shared_ptr, with any teardown specific stuff in the destructor. - template class cache { public: @@ -180,7 +173,7 @@ namespace base { template cache::~cache() { - deleter d; + utils::deleter d; lookup_algo::clear_and_dispose(&lookup_header_, d); } diff --git a/deleter.h b/deleter.h new file mode 100644 index 0000000..139e8f4 --- /dev/null +++ b/deleter.h @@ -0,0 +1,17 @@ +#ifndef DELETER_H +#define DELETER_H + +//---------------------------------------------------------------- + +namespace utils { + template + struct deleter { + void operator()(T *t) { + delete t; + } + }; +} + +//---------------------------------------------------------------- + +#endif