RESTinio
cache-control.hpp
Go to the documentation of this file.
1 /*
2  * RESTinio
3  */
4 
5 /*!
6  * @file
7  * @brief Stuff related to value of Cache-Control HTTP-field.
8  *
9  * @since v.0.6.1
10  */
11 
12 #pragma once
13 
14 #include <restinio/helpers/http_field_parsers/basics.hpp>
15 
16 namespace restinio
17 {
18 
19 namespace http_field_parsers
20 {
21 
22 //
23 // cache_control_value_t
24 //
25 /*!
26  * @brief Tools for working with the value of Cache-Control HTTP-field.
27  *
28  * This struct represents parsed value of HTTP-field Cache-Control
29  * (see https://tools.ietf.org/html/rfc7234#section-5.2):
30 @verbatim
31  Cache-Control = 1#cache-directive
32 
33  cache-directive = token [ "=" ( token / quoted-string ) ]
34 @endverbatim
35  *
36  * @note
37  * Parameter names are converted to lower case during the parsing.
38  * Parameter values are left as they are.
39  *
40  * @since v.0.6.1
41  */
43 {
45 
47 
49 
50  /*!
51  * @brief A factory function for a parser of Cache-Control value.
52  *
53  * @since v.0.6.1
54  */
56  static auto
58  {
62  token_p() >> to_lower() >> &directive_t::first,
63  maybe(
64  symbol('='),
66  token_p() >> &directive_t::second,
68  )
69  )
70  )
72  );
73  }
74 
75  /*!
76  * @brief An attempt to parse Cache-Control HTTP-field.
77  *
78  * @since v.0.6.1
79  */
83  {
85  }
86 };
87 
88 } /* namespace http_field_parsers */
89 
90 } /* namespace restinio */
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.
RESTINIO_NODISCARD auto try_parse_field(const generic_request_t< Extra_Data > &req, http_field_t field_id, string_view_t default_value=string_view_t{})
A helper function for extraction and parsing a value of HTTP-field.
std::enable_if< std::is_same< Parameter_Container, query_string_params_t >::value||std::is_same< Parameter_Container, router::route_params_t >::value, optional_t< Value_Type > >::type opt_value(const Parameter_Container &params, string_view_t key)
Gets the value of a parameter specified by key wrapped in optional_t<Value_Type> if parameter exists ...
Definition: value_or.hpp:64