11e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
21e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
31e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// found in the LICENSE file.
41e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
51e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "net/tools/quic/test_tools/quic_dispatcher_peer.h"
61e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
71e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "net/tools/quic/quic_dispatcher.h"
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "net/tools/quic/quic_packet_writer_wrapper.h"
91e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace net {
111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace tools {
121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace test {
131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
151e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void QuicDispatcherPeer::SetTimeWaitListManager(
161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    QuicDispatcher* dispatcher,
171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    QuicTimeWaitListManager* time_wait_list_manager) {
181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  dispatcher->time_wait_list_manager_.reset(time_wait_list_manager);
191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void QuicDispatcherPeer::UseWriter(QuicDispatcher* dispatcher,
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                   QuicPacketWriterWrapper* writer) {
245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  writer->set_writer(dispatcher->writer_.release());
255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  dispatcher->writer_.reset(writer);
261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuQuicPacketWriter* QuicDispatcherPeer::GetWriter(QuicDispatcher* dispatcher) {
301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return dispatcher->writer_.get();
311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void QuicDispatcherPeer::SetPacketWriterFactory(
3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    QuicDispatcher* dispatcher,
3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    QuicDispatcher::PacketWriterFactory* packet_writer_factory) {
3703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  dispatcher->packet_writer_factory_.reset(packet_writer_factory);
3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}
3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// static
411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)QuicEpollConnectionHelper* QuicDispatcherPeer::GetHelper(
421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    QuicDispatcher* dispatcher) {
431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  return dispatcher->helper_.get();
441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
46e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch// static
47e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen MurdochQuicConnection* QuicDispatcherPeer::CreateQuicConnection(
48e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch    QuicDispatcher* dispatcher,
49e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch    QuicConnectionId connection_id,
50e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch    const IPEndPoint& server,
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const IPEndPoint& client) {
52e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  return dispatcher->CreateQuicConnection(connection_id,
53e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                          server,
54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                          client);
55e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch}
56e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// static
58116680a4aac90f2aa7413d9095a592090648e557Ben MurdochQuicDispatcher::WriteBlockedList* QuicDispatcherPeer::GetWriteBlockedList(
59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    QuicDispatcher* dispatcher) {
60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return &dispatcher->write_blocked_list_;
61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}  // namespace test
641e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}  // namespace tools
651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}  // namespace net
66