20 #include "hazelcast/util/export.h"
21 #include "hazelcast/util/noop.h"
22 #include "hazelcast/util/type_traits.h"
24 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
26 #pragma warning(disable : 4251)
31 class lifecycle_event;
33 class lifecycle_service;
55 template<
typename Handler,
56 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
59 starting_ = std::forward<Handler>(h);
66 template<
typename Handler,
67 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
70 on_starting(std::forward<Handler>(h));
71 return std::move(*
this);
79 template<
typename Handler,
80 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
83 started_ = std::forward<Handler>(h);
90 template<
typename Handler,
91 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
94 on_started(std::forward<Handler>(h));
95 return std::move(*
this);
103 template<
typename Handler,
104 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
107 shutting_down_ = std::forward<Handler>(h);
114 template<
typename Handler,
115 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
118 on_shutting_down(std::forward<Handler>(h));
119 return std::move(*
this);
127 template<
typename Handler,
128 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
131 shutdown_ = std::forward<Handler>(h);
138 template<
typename Handler,
139 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
142 on_shutdown(std::forward<Handler>(h));
143 return std::move(*
this);
151 template<
typename Handler,
152 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
155 connected_ = std::forward<Handler>(h);
162 template<
typename Handler,
163 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
166 on_connected(std::forward<Handler>(h));
167 return std::move(*
this);
175 template<
typename Handler,
176 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
179 disconnected_ = std::forward<Handler>(h);
186 template<
typename Handler,
187 typename = util::enable_if_rvalue_ref_trait<Handler&&>>
190 on_disconnected(std::forward<Handler>(h));
191 return std::move(*
this);
195 using HandlerType = std::function<void()>;
196 HandlerType starting_{ util::noop<> }, started_{ util::noop<> },
197 shutting_down_{ util::noop<> }, shutdown_{ util::noop<> },
198 connected_{ util::noop<> }, disconnected_{ util::noop<> };
200 friend class spi::lifecycle_service;
205 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
Listener object for listening lifecycle events of hazelcast instance.
lifecycle_listener & on_shutdown(Handler &&h) &
Set an handler function to be invoked when the client's shutdown has completed.
lifecycle_listener && on_disconnected(Handler &&h) &&
Set an handler function to be invoked when client is disconnected from the cluster.
lifecycle_listener & on_started(Handler &&h) &
Set an handler function to be invoked when the client has started.
lifecycle_listener && on_connected(Handler &&h) &&
Set an handler function to be invoked when the client is connected to the cluster.
lifecycle_listener && on_shutdown(Handler &&h) &&
Set an handler function to be invoked when the client's shutdown has completed.
lifecycle_listener && on_shutting_down(Handler &&h) &&
Set an handler function to be invoked when the client is shutting down.
lifecycle_listener && on_started(Handler &&h) &&
Set an handler function to be invoked when the client has started.
lifecycle_listener & on_connected(Handler &&h) &
Set an handler function to be invoked when the client is connected to the cluster.
lifecycle_listener & on_starting(Handler &&h) &
Set an handler function to be invoked when the client is starting.
lifecycle_listener & on_disconnected(Handler &&h) &
Set an handler function to be invoked when client is disconnected from the cluster.
lifecycle_listener && on_starting(Handler &&h) &&
Set an handler function to be invoked when the client is starting.
lifecycle_listener & on_shutting_down(Handler &&h) &
Set an handler function to be invoked when the client is shutting down.