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.