10 #include "util/fibers/fibers_ext.h" 11 #include "util/uring/connection.h" 12 #include "util/uring/fiber_socket.h" 20 class ListenerInterface;
31 void Stop(
bool wait =
false);
38 void TriggerOnBreakSignal(std::function<
void()> f) {
39 on_break_hook_ = std::move(f);
42 void set_back_log(uint16_t backlog) {
48 void BreakListeners();
53 std::function<void()> on_break_hook_;
55 std::vector<std::unique_ptr<ListenerInterface>> list_interface_;
58 bool was_run_ =
false;
61 uint16_t backlog_ = 128;
84 virtual void PreShutdown() {
88 virtual void PostShutdown() {
91 virtual uint32_t GetSockOptMask()
const {
return 1 << SO_REUSEADDR; }
94 ProactorPool* pool() {
98 FiberSocket* listener() {
return &listener_;}
103 void RunAcceptLoop();
104 static void RunSingleConnection(Connection* conn, SafeConnList* list);
106 FiberSocket listener_;
108 ProactorPool* pool_ =
nullptr;
109 friend class AcceptServer;
virtual Connection * NewConnection(Proactor *context)=0
virtual void PreAcceptLoop(Proactor *owner)
Abstracts away connections implementation and their life-cycle.