21#include "hazelcast/util/export.h"
22#include "hazelcast/util/noop.h"
23#include "hazelcast/util/type_traits.h"
25#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
27#pragma warning(disable : 4251)
36class item_event_handler;
59 template<
typename Handler,
60 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
63 added_ = std::forward<Handler>(h);
70 template<
typename Handler,
71 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
75 return std::move(*
this);
83 template<
typename Handler>
86 removed_ = std::forward<Handler>(h);
93 template<
typename Handler>
97 return std::move(*
this);
101 using HandlerType = std::function<void(
item_event&&)>;
102 HandlerType added_ = util::noop<item_event&&>,
103 removed_ = util::noop<item_event&&>;
106 friend class impl::item_event_handler;
111#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
Item listener for IQueue, ISet and IList.
item_listener & on_added(Handler &&h) &
Set an handler function to be invoked when an item is added.
item_listener && on_added(Handler &&h) &&
item_listener && on_removed(Handler &&h) &&
item_listener & on_removed(Handler &&h) &
Set an handler function to be invoked when an item is removed.