blob: ec22f94f4802587f406218cfc0e24a385314e69e [file] [log] [blame]
// 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 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 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>);
static std::string SelectAlpn(QuicDispatcher* dispatcher,
const std::vector<std::string>& alpns);
};
} // namespace test
} // namespace quic
#endif // QUICHE_QUIC_TEST_TOOLS_QUIC_DISPATCHER_PEER_H_