|  | // 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 "net/third_party/quiche/src/quic/core/quic_dispatcher.h" | 
|  |  | 
|  | namespace quic { | 
|  |  | 
|  | class QuicPacketWriterWrapper; | 
|  |  | 
|  | namespace test { | 
|  |  | 
|  | class QuicDispatcherPeer { | 
|  | public: | 
|  | QuicDispatcherPeer() = delete; | 
|  |  | 
|  | 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 const QuicDispatcher::SessionMap& session_map( | 
|  | 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, | 
|  | std::unique_ptr<QuicPerPacketContext> packet_context); | 
|  |  | 
|  | static std::unique_ptr<QuicPerPacketContext> GetPerPacketContext( | 
|  | QuicDispatcher* dispatcher); | 
|  |  | 
|  | static void RestorePerPacketContext(QuicDispatcher* dispatcher, | 
|  | std::unique_ptr<QuicPerPacketContext>); | 
|  | }; | 
|  |  | 
|  | }  // namespace test | 
|  | }  // namespace quic | 
|  |  | 
|  | #endif  // QUICHE_QUIC_TEST_TOOLS_QUIC_DISPATCHER_PEER_H_ |