| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef QUICHE_QUIC_TEST_TOOLS_QUIC_DISPATCHER_PEER_H_ |
| #define QUICHE_QUIC_TEST_TOOLS_QUIC_DISPATCHER_PEER_H_ |
| |
| #include "quiche/quic/core/quic_connection_id.h" |
| #include "quiche/quic/core/quic_dispatcher.h" |
| |
| namespace quic { |
| |
| class QuicPacketWriterWrapper; |
| |
| namespace test { |
| |
| class QuicDispatcherPeer { |
| public: |
| QuicDispatcherPeer() = delete; |
| |
| static QuicTimeWaitListManager* GetTimeWaitListManager( |
| QuicDispatcher* dispatcher); |
| |
| static void SetTimeWaitListManager( |
| QuicDispatcher* dispatcher, |
| QuicTimeWaitListManager* time_wait_list_manager); |
| |
| // Injects |writer| into |dispatcher| as the shared writer. |
| static void UseWriter(QuicDispatcher* dispatcher, |
| QuicPacketWriterWrapper* writer); |
| |
| static QuicPacketWriter* GetWriter(QuicDispatcher* dispatcher); |
| |
| static QuicCompressedCertsCache* GetCache(QuicDispatcher* dispatcher); |
| |
| static QuicConnectionHelperInterface* GetHelper(QuicDispatcher* dispatcher); |
| |
| static QuicAlarmFactory* GetAlarmFactory(QuicDispatcher* dispatcher); |
| |
| static QuicDispatcher::WriteBlockedList* GetWriteBlockedList( |
| QuicDispatcher* dispatcher); |
| |
| // Get the dispatcher's record of the last error reported to its framer |
| // visitor's OnError() method. Then set that record to QUIC_NO_ERROR. |
| static QuicErrorCode GetAndClearLastError(QuicDispatcher* dispatcher); |
| |
| static QuicBufferedPacketStore* GetBufferedPackets( |
| QuicDispatcher* dispatcher); |
| |
| static void set_new_sessions_allowed_per_event_loop( |
| QuicDispatcher* dispatcher, size_t num_session_allowed); |
| |
| static void SendPublicReset( |
| QuicDispatcher* dispatcher, const QuicSocketAddress& self_address, |
| const QuicSocketAddress& peer_address, QuicConnectionId connection_id, |
| bool ietf_quic, size_t received_packet_length, |
| std::unique_ptr<QuicPerPacketContext> packet_context); |
| |
| static std::unique_ptr<QuicPerPacketContext> GetPerPacketContext( |
| QuicDispatcher* dispatcher); |
| |
| static void RestorePerPacketContext(QuicDispatcher* dispatcher, |
| std::unique_ptr<QuicPerPacketContext>); |
| |
| static std::string SelectAlpn(QuicDispatcher* dispatcher, |
| const std::vector<std::string>& alpns); |
| |
| // Get the first session in the session map. Returns nullptr if the map is |
| // empty. |
| static QuicSession* GetFirstSessionIfAny(QuicDispatcher* dispatcher); |
| |
| // Find the corresponding session if exsits. |
| static const QuicSession* FindSession(const QuicDispatcher* dispatcher, |
| QuicConnectionId id); |
| |
| static QuicAlarm* GetClearResetAddressesAlarm(QuicDispatcher* dispatcher); |
| }; |
| |
| } // namespace test |
| } // namespace quic |
| |
| #endif // QUICHE_QUIC_TEST_TOOLS_QUIC_DISPATCHER_PEER_H_ |