Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/common/pure.h" 4 : 5 : namespace Envoy { 6 : 7 : /** 8 : * Hooks in the server to allow for integration testing. The real server just uses an empty 9 : * implementation defined below. 10 : */ 11 : class ListenerHooks { 12 : public: 13 135 : virtual ~ListenerHooks() = default; 14 : 15 : /** 16 : * Called when a worker has added a listener and it is listening. 17 : */ 18 : virtual void onWorkerListenerAdded() PURE; 19 : 20 : /** 21 : * Called when a worker has removed a listener and it is no longer listening. 22 : */ 23 : virtual void onWorkerListenerRemoved() PURE; 24 : 25 : /** 26 : * Called when all workers have started. 27 : */ 28 : virtual void onWorkersStarted() PURE; 29 : }; 30 : 31 : /** 32 : * Empty implementation of ListenerHooks. 33 : */ 34 : class DefaultListenerHooks : public ListenerHooks { 35 : public: 36 : // ListenerHooks 37 0 : void onWorkerListenerAdded() override {} 38 0 : void onWorkerListenerRemoved() override {} 39 0 : void onWorkersStarted() override {} 40 : }; 41 : 42 : } // namespace Envoy