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 ReceiveAlgorithmInterface
;
23 class SendAlgorithmInterface
;
27 class SimpleFramerVisitor
;
29 // Peer to make public a number of otherwise private QuicFramer methods.
30 class SimpleQuicFramer
{
33 explicit SimpleQuicFramer(const QuicVersionVector
& supported_versions
);
36 bool ProcessPacket(const QuicEncryptedPacket
& packet
);
37 bool ProcessPacket(const QuicPacket
& packet
);
40 const QuicPacketHeader
& header() const;
41 size_t num_frames() const;
42 const std::vector
<QuicAckFrame
>& ack_frames() const;
43 const std::vector
<QuicConnectionCloseFrame
>& connection_close_frames() const;
44 const std::vector
<QuicStopWaitingFrame
>& stop_waiting_frames() const;
45 const std::vector
<QuicPingFrame
>& ping_frames() const;
46 const std::vector
<QuicGoAwayFrame
>& goaway_frames() const;
47 const std::vector
<QuicRstStreamFrame
>& rst_stream_frames() const;
48 const std::vector
<QuicStreamFrame
>& stream_frames() const;
49 const QuicFecData
& fec_data() const;
50 const QuicVersionNegotiationPacket
* version_negotiation_packet() const;
54 void SetSupportedVersions(const QuicVersionVector
& versions
) {
55 framer_
.SetSupportedVersions(versions
);
60 scoped_ptr
<SimpleFramerVisitor
> visitor_
;
61 DISALLOW_COPY_AND_ASSIGN(SimpleQuicFramer
);
68 #endif // NET_QUIC_TEST_TOOLS_SIMPLE_QUIC_FRAMER_H_