Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/server/factory_context.h" 4 : #include "envoy/server/instance.h" 5 : 6 : #include "source/server/factory_context_impl.h" 7 : 8 : namespace Envoy { 9 : namespace Server { 10 : 11 : class AdminFactoryContext final : public FactoryContextImplBase { 12 : public: 13 : AdminFactoryContext(Envoy::Server::Instance& server, 14 : const Network::ListenerInfoConstSharedPtr& listener_info) 15 : : FactoryContextImplBase(server, server.messageValidationContext().staticValidationVisitor(), 16 : server.stats().createScope(""), 17 244 : server.stats().createScope("listener.admin."), listener_info) {} 18 : 19 0 : Init::Manager& initManager() override { 20 : // Reuse the server init manager to avoid creating a new one for this special listener. 21 0 : return server_.initManager(); 22 0 : } 23 0 : Network::DrainDecision& drainDecision() override { 24 : // Reuse the server drain manager to avoid creating a new one for this special listener. 25 0 : return server_.drainManager(); 26 0 : } 27 : }; 28 : using AdminFactoryContextPtr = std::unique_ptr<AdminFactoryContext>; 29 : 30 : } // namespace Server 31 : } // namespace Envoy