RESTinio
cache-control.hpp
Go to the documentation of this file.
1 /*
2  * RESTinio
3  */
4 
12 #pragma once
13 
15 
16 namespace restinio
17 {
18 
19 namespace http_field_parsers
20 {
21 
22 //
23 // cache_control_value_t
24 //
43 {
45 
47 
49 
56  static auto
58  {
59  return produce< cache_control_value_t >(
60  non_empty_comma_separated_list_p< directive_container_t >(
61  produce< directive_t >(
62  token_p() >> to_lower() >> &directive_t::first,
63  maybe(
64  symbol('='),
66  token_p() >> &directive_t::second,
67  quoted_string_p() >> &directive_t::second
68  )
69  )
70  )
72  );
73  }
74 
83  {
85  }
86 };
87 
88 } /* namespace http_field_parsers */
89 
90 } /* namespace restinio */
91 
restinio::http_field_parsers::quoted_string_p
RESTINIO_NODISCARD auto quoted_string_p() noexcept
A factory function to create a quoted_string_producer.
Definition: basics.hpp:1012
restinio::http_field_parsers::cache_control_value_t::directive_container_t
parameter_with_optional_value_container_t directive_container_t
Definition: cache-control.hpp:46
RESTINIO_NODISCARD
#define RESTINIO_NODISCARD
Definition: compiler_features.hpp:33
restinio::easy_parser::symbol
RESTINIO_NODISCARD auto symbol(char expected) noexcept
A factory function to create a clause that expects the speficied symbol, extracts it and then skips i...
Definition: easy_parser.hpp:4032
restinio::http_field_parsers::token_p
RESTINIO_NODISCARD auto token_p() noexcept
A factory function to create a token_producer.
Definition: basics.hpp:985
restinio::http_field_parsers::cache_control_value_t
Tools for working with the value of Cache-Control HTTP-field.
Definition: cache-control.hpp:43
restinio::http_field_parsers::cache_control_value_t::try_parse
static RESTINIO_NODISCARD expected_t< cache_control_value_t, restinio::easy_parser::parse_error_t > try_parse(string_view_t what)
An attempt to parse Cache-Control HTTP-field.
Definition: cache-control.hpp:82
restinio::string_view_t
nonstd::string_view string_view_t
Definition: string_view.hpp:19
restinio::easy_parser::try_parse
RESTINIO_NODISCARD expected_t< typename Producer::result_type, parse_error_t > try_parse(string_view_t from, Producer producer)
Perform the parsing of the specified content by using specified value producer.
Definition: easy_parser.hpp:5042
restinio::expected_t
nonstd::expected< T, E > expected_t
Definition: expected.hpp:22
basics.hpp
Utilities for parsing values of http-fields.
restinio::http_field_parsers::parameter_with_optional_value_t
std::pair< std::string, restinio::optional_t< std::string > > parameter_with_optional_value_t
A type that describes a parameter with optional value.
Definition: basics.hpp:1696
restinio::http_field_parsers::cache_control_value_t::directive_t
parameter_with_optional_value_t directive_t
Definition: cache-control.hpp:44
restinio::http_field_parsers::cache_control_value_t::make_parser
static RESTINIO_NODISCARD auto make_parser()
A factory function for a parser of Cache-Control value.
Definition: cache-control.hpp:57
restinio::http_field_parsers::cache_control_value_t::directives
directive_container_t directives
Definition: cache-control.hpp:48
restinio
Definition: asio_include.hpp:21
restinio::easy_parser::to_lower
RESTINIO_NODISCARD auto to_lower() noexcept
A factory function to create a to_lower_transformer.
Definition: easy_parser.hpp:4610
restinio::easy_parser::alternatives
RESTINIO_NODISCARD auto alternatives(Clauses &&... clauses)
A factory function to create an alternatives clause.
Definition: easy_parser.hpp:3595
restinio::http_field_parsers::parameter_with_optional_value_container_t
std::vector< parameter_with_optional_value_t > parameter_with_optional_value_container_t
A type of container for parameters with optional values.
Definition: basics.hpp:1707
restinio::easy_parser::maybe
RESTINIO_NODISCARD auto maybe(Clauses &&... clauses)
A factory function to create an optional clause.
Definition: easy_parser.hpp:3634