Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Side by Side Diff: net/http2/decoder/payload_decoders/altsvc_payload_decoder.h

Issue 2554683003: Revert of Add new HTTP/2 and HPACK decoder in net/http2/. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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.
4
5 #ifndef NET_HTTP2_DECODER_PAYLOAD_DECODERS_ALTSVC_PAYLOAD_DECODER_H_
6 #define NET_HTTP2_DECODER_PAYLOAD_DECODERS_ALTSVC_PAYLOAD_DECODER_H_
7
8 // Decodes the payload of a ALTSVC frame.
9
10 #include "net/base/net_export.h"
11 #include "net/http2/decoder/decode_buffer.h"
12 #include "net/http2/decoder/decode_status.h"
13 #include "net/http2/decoder/frame_decoder_state.h"
14 #include "net/http2/http2_structures.h"
15
16 namespace net {
17 namespace test {
18 class AltSvcPayloadDecoderPeer;
19 } // namespace test
20
21 class NET_EXPORT_PRIVATE AltSvcPayloadDecoder {
22 public:
23 // States during decoding of a ALTSVC frame.
24 enum class PayloadState {
25 // Start decoding the fixed size structure at the start of an ALTSVC
26 // frame (Http2AltSvcFields).
27 kStartDecodingStruct,
28
29 // Handle the DecodeStatus returned from starting or resuming the
30 // decoding of Http2AltSvcFields. If complete, calls OnAltSvcStart.
31 kMaybeDecodedStruct,
32
33 // Reports the value of the strings (origin and value) of an ALTSVC frame
34 // to the listener.
35 kDecodingStrings,
36
37 // The initial decode buffer wasn't large enough for the Http2AltSvcFields,
38 // so this state resumes the decoding when ResumeDecodingPayload is called
39 // later with a new DecodeBuffer.
40 kResumeDecodingStruct,
41 };
42
43 // Starts the decoding of a ALTSVC frame's payload, and completes it if the
44 // entire payload is in the provided decode buffer.
45 DecodeStatus StartDecodingPayload(FrameDecoderState* state, DecodeBuffer* db);
46
47 // Resumes decoding a ALTSVC frame's payload that has been split across
48 // decode buffers.
49 DecodeStatus ResumeDecodingPayload(FrameDecoderState* state,
50 DecodeBuffer* db);
51
52 private:
53 friend class test::AltSvcPayloadDecoderPeer;
54
55 // Implements state kDecodingStrings.
56 DecodeStatus DecodeStrings(FrameDecoderState* state, DecodeBuffer* db);
57
58 Http2AltSvcFields altsvc_fields_;
59 PayloadState payload_state_;
60 };
61
62 } // namespace net
63
64 #endif // NET_HTTP2_DECODER_PAYLOAD_DECODERS_ALTSVC_PAYLOAD_DECODER_H_
OLDNEW
« no previous file with comments | « net/http2/decoder/http2_structure_decoder_test_util.h ('k') | net/http2/decoder/payload_decoders/altsvc_payload_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698