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_t<Handler &&>>
58 starting_ = std::forward<Handler>(h);
65 template<
typename Handler,
66 typename = util::enable_if_rvalue_ref_t<Handler &&>>
68 on_starting(std::forward<Handler>(h));
69 return std::move(*
this);
77 template<
typename Handler,
78 typename = util::enable_if_rvalue_ref_t<Handler &&>>
80 started_ = std::forward<Handler>(h);
87 template<
typename Handler,
88 typename = util::enable_if_rvalue_ref_t<Handler &&>>
90 on_started(std::forward<Handler>(h));
91 return std::move(*
this);
99 template<
typename Handler,
100 typename = util::enable_if_rvalue_ref_t<Handler &&>>
102 shutting_down_ = std::forward<Handler>(h);
109 template<
typename Handler,
110 typename = util::enable_if_rvalue_ref_t<Handler &&>>
112 on_shutting_down(std::forward<Handler>(h));
113 return std::move(*
this);
121 template<
typename Handler,
122 typename = util::enable_if_rvalue_ref_t<Handler &&>>
124 shutdown_ = std::forward<Handler>(h);
131 template<
typename Handler,
132 typename = util::enable_if_rvalue_ref_t<Handler &&>>
134 on_shutdown(std::forward<Handler>(h));
135 return std::move(*
this);
143 template<
typename Handler,
144 typename = util::enable_if_rvalue_ref_t<Handler &&>>
146 connected_ = std::forward<Handler>(h);
153 template<
typename Handler,
154 typename = util::enable_if_rvalue_ref_t<Handler &&>>
156 on_connected(std::forward<Handler>(h));
157 return std::move(*
this);
165 template<
typename Handler,
166 typename = util::enable_if_rvalue_ref_t<Handler &&>>
168 disconnected_ = std::forward<Handler>(h);
175 template<
typename Handler,
176 typename = util::enable_if_rvalue_ref_t<Handler &&>>
178 on_disconnected(std::forward<Handler>(h));
179 return std::move(*
this);
183 using HandlerType = std::function<void()>;
184 HandlerType starting_{ util::noop<> },
185 started_{ util::noop<> },
186 shutting_down_{ util::noop<> },
187 shutdown_{ util::noop<> },
188 connected_{ util::noop<> },
189 disconnected_{ util::noop<> };
191 friend class spi::lifecycle_service;
196 #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.