Chromium Code Reviews| Index: third_party/WebKit/Source/platform/network/ContentHeaderFieldInput.h |
| diff --git a/third_party/WebKit/Source/platform/network/ContentHeaderFieldInput.h b/third_party/WebKit/Source/platform/network/ContentHeaderFieldInput.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1fe983ef9f443503139c9de1ee2e846089e729a3 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/platform/network/ContentHeaderFieldInput.h |
| @@ -0,0 +1,46 @@ |
| +// Copyright 2017 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 ContentHeaderFieldInput_h |
| +#define ContentHeaderFieldInput_h |
| + |
| +#include "platform/network/ParsedContentHeaderFieldParameters.h" |
| +#include "platform/wtf/text/WTFString.h" |
| + |
| +namespace blink { |
| + |
| +// ContentHeaderFieldInput is used internally by ParsedContentDisposition, |
| +// ParsedContentHeaderFieldParameters and ParsedContentType classes for parsing |
| +// content header fields into tokens, quoted strings and separators. |
|
kinuko
2017/05/23 11:27:31
Maybe just:
"Parses content header fields into to
e_hakkinen
2017/05/23 20:07:02
Done.
|
| +class ContentHeaderFieldInput final { |
|
kinuko
2017/05/23 11:27:31
Would it make sense to rather call it, say, Conten
e_hakkinen
2017/05/23 20:07:02
Done.
|
| + STACK_ALLOCATED(); |
| + |
| + public: |
| + using Mode = ParsedContentHeaderFieldParameters::Mode; |
| + |
| + explicit ContentHeaderFieldInput(const String& header_field); |
| + ContentHeaderFieldInput(ContentHeaderFieldInput&&); |
| + |
| + // Try to parse a separator character, a token or either a token or a quoted |
| + // string from the |header_field| input. Return |true| on success. Return |
| + // |false| if the separator character, the token or the quoted string is |
| + // missing or invalid. |
| + bool Consume(char); |
| + bool ConsumeToken(Mode, StringView& output); |
| + bool ConsumeTokenOrQuotedString(Mode, String& output); |
| + |
| + unsigned Index() const { return index_; } |
| + bool IsConsumed() const { return index_ >= input_.length(); } |
| + void SkipSpaces(); |
| + |
| + private: |
| + bool ConsumeQuotedString(String& output); |
| + |
| + unsigned index_; |
| + const String input_; |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif |