1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef NET_QUIC_TEST_TOOLS_SIMPLE_QUIC_FRAMER_H_
6 #define NET_QUIC_TEST_TOOLS_SIMPLE_QUIC_FRAMER_H_
10 #include "base/basictypes.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "net/quic/quic_framer.h"
13 #include "net/quic/quic_protocol.h"
17 class CryptoHandshakeMessage
;
20 class QuicConnectionVisitorInterface
;
21 class QuicPacketCreator
;
22 class SendAlgorithmInterface
;
26 class SimpleFramerVisitor
;
28 // Peer to make public a number of otherwise private QuicFramer methods.
29 class SimpleQuicFramer
{
32 explicit SimpleQuicFramer(const QuicVersionVector
& supported_versions
);
35 bool ProcessPacket(const QuicEncryptedPacket
& packet
);
38 const QuicPacketHeader
& header() const;
39 size_t num_frames() const;
40 const std::vector
<QuicAckFrame
>& ack_frames() const;
41 const std::vector
<QuicConnectionCloseFrame
>& connection_close_frames() const;
42 const std::vector
<QuicStopWaitingFrame
>& stop_waiting_frames() const;
43 const std::vector
<QuicPingFrame
>& ping_frames() const;
44 const std::vector
<QuicGoAwayFrame
>& goaway_frames() const;
45 const std::vector
<QuicRstStreamFrame
>& rst_stream_frames() const;
46 const std::vector
<QuicStreamFrame
>& stream_frames() const;
47 const QuicFecData
& fec_data() const;
48 const QuicVersionNegotiationPacket
* version_negotiation_packet() const;
52 void SetSupportedVersions(const QuicVersionVector
& versions
) {
53 framer_
.SetSupportedVersions(versions
);
58 scoped_ptr
<SimpleFramerVisitor
> visitor_
;
59 DISALLOW_COPY_AND_ASSIGN(SimpleQuicFramer
);
66 #endif // NET_QUIC_TEST_TOOLS_SIMPLE_QUIC_FRAMER_H_