Line data Source code
1 : #pragma once 2 : 3 : #include "source/common/common/non_copyable.h" 4 : #include "source/common/quic/envoy_quic_alarm.h" 5 : 6 : #include "quiche/quic/core/quic_alarm_factory.h" 7 : #include "quiche/quic/core/quic_arena_scoped_ptr.h" 8 : #include "quiche/quic/core/quic_one_block_arena.h" 9 : 10 : namespace Envoy { 11 : namespace Quic { 12 : 13 : class EnvoyQuicAlarmFactory : public quic::QuicAlarmFactory, NonCopyable { 14 : public: 15 : EnvoyQuicAlarmFactory(Event::Dispatcher& dispatcher, const quic::QuicClock& clock) 16 1 : : dispatcher_(dispatcher), clock_(clock) {} 17 : 18 1 : ~EnvoyQuicAlarmFactory() override = default; 19 : 20 : // QuicAlarmFactory 21 : quic::QuicAlarm* CreateAlarm(quic::QuicAlarm::Delegate* delegate) override; 22 : quic::QuicArenaScopedPtr<quic::QuicAlarm> 23 : CreateAlarm(quic::QuicArenaScopedPtr<quic::QuicAlarm::Delegate> delegate, 24 : quic::QuicConnectionArena* arena) override; 25 : 26 : private: 27 : Event::Dispatcher& dispatcher_; 28 : const quic::QuicClock& clock_; 29 : }; 30 : 31 : } // namespace Quic 32 : } // namespace Envoy