rename it to weak callback container

This commit is contained in:
Denis Blank 2015-06-10 02:03:28 +02:00 committed by Naios
parent 2250d8bfb3
commit aa03a00f92
2 changed files with 16 additions and 16 deletions

View File

@ -15,8 +15,8 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef _CALLBACK_CONTAINER_H_ #ifndef _WEAK_CALLBACK_CONTAINER_H_
#define _CALLBACK_CONTAINER_H_ #define _WEAK_CALLBACK_CONTAINER_H_
#include <unordered_map> #include <unordered_map>
@ -25,9 +25,9 @@
#include "Callback.h" #include "Callback.h"
class CallbackContainer class WeakCallbackContainer
{ {
std::shared_ptr<CallbackContainer> self_reference; std::shared_ptr<WeakCallbackContainer> self_reference;
typedef size_t handle_t; typedef size_t handle_t;
@ -42,7 +42,7 @@ class CallbackContainer
struct ProxyFactory<_CTy, std::tuple<Args...>> struct ProxyFactory<_CTy, std::tuple<Args...>>
{ {
// Creates a weak proxy callback which prevents invoking to an invalid context. // Creates a weak proxy callback which prevents invoking to an invalid context.
static callback_of_t<_CTy> CreateProxy(std::weak_ptr<CallbackContainer> const& weak_owner, static callback_of_t<_CTy> CreateProxy(std::weak_ptr<WeakCallbackContainer> const& weak_owner,
size_t const handle, weak_callback_of_t<_CTy> const& weak_callback) size_t const handle, weak_callback_of_t<_CTy> const& weak_callback)
{ {
return [=](Args&&... args) return [=](Args&&... args)
@ -64,18 +64,18 @@ class CallbackContainer
}; };
public: public:
CallbackContainer() WeakCallbackContainer()
: self_reference(this, [](decltype(this) me) { }), handle(0L) { } : self_reference(this, [](decltype(this) me) { }), handle(0L) { }
~CallbackContainer() = default; ~WeakCallbackContainer() = default;
CallbackContainer(CallbackContainer const&) = delete; WeakCallbackContainer(WeakCallbackContainer const&) = delete;
CallbackContainer(CallbackContainer&&) = delete; WeakCallbackContainer(WeakCallbackContainer&&) = delete;
CallbackContainer& operator= (CallbackContainer const&) = delete; WeakCallbackContainer& operator= (WeakCallbackContainer const&) = delete;
CallbackContainer& operator= (CallbackContainer&&) = delete; WeakCallbackContainer& operator= (WeakCallbackContainer&&) = delete;
CallbackContainer& Clear() WeakCallbackContainer& Clear()
{ {
container.clear(); container.clear();
return *this; return *this;
@ -106,11 +106,11 @@ public:
return boost::make_optional(handle); return boost::make_optional(handle);
} }
CallbackContainer& InvalidateCallback(handle_t const handle) WeakCallbackContainer& InvalidateCallback(handle_t const handle)
{ {
container.erase(handle); container.erase(handle);
return *this; return *this;
} }
}; };
#endif /// _CALLBACK_CONTAINER_H_ #endif /// _WEAK_CALLBACK_CONTAINER_H_

View File

@ -2,7 +2,7 @@
#include "fluent++.hpp" #include "fluent++.hpp"
#include "Callback.h" #include "Callback.h"
#include "CallbackContainer.h" #include "WeakCallbackContainer.h"
#include <iostream> #include <iostream>
#include <exception> #include <exception>
@ -53,7 +53,7 @@ int main(int argc, char** argv)
Callback<> weak_cb_test; Callback<> weak_cb_test;
{ {
CallbackContainer callback; WeakCallbackContainer callback;
std::shared_ptr<int> dealloc_test(new int{2}, [](int* me) std::shared_ptr<int> dealloc_test(new int{2}, [](int* me)
{ {