RESTinio
Toggle main menu visibility
Loading...
Searching...
No Matches
restinio
helpers
http_field_parsers
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
*/
42
struct
cache_control_value_t
43
{
44
using
directive_t
=
parameter_with_optional_value_t
;
45
46
using
directive_container_t
=
parameter_with_optional_value_container_t
;
47
48
directive_container_t
directives
;
49
50
/*!
51
* @brief A factory function for a parser of Cache-Control value.
52
*
53
* @since v.0.6.1
54
*/
55
[[nodiscard]]
56
static
auto
57
make_parser
()
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(
'='
),
65
alternatives(
66
token_p() >> &directive_t::second,
67
quoted_string_p() >> &directive_t::second
68
)
69
)
70
)
71
) >> &cache_control_value_t::directives
72
);
73
}
74
75
/*!
76
* @brief An attempt to parse Cache-Control HTTP-field.
77
*
78
* @since v.0.6.1
79
*/
80
[[nodiscard]]
81
static
expected_t
<
cache_control_value_t
,
restinio
::
easy_parser
::
parse_error_t
>
82
try_parse
( string_view_t what )
83
{
84
return
restinio
::
easy_parser
::try_parse( what, make_parser() );
85
}
86
};
87
88
}
/* namespace http_field_parsers */
89
90
}
/* namespace restinio */
restinio::easy_parser
Definition
easy_parser.hpp:42
restinio::http_field_parsers
Definition
accept-charset.hpp:20
restinio::http_field_parsers::parameter_with_optional_value_t
std::pair< std::string, std::optional< std::string > > parameter_with_optional_value_t
A type that describes a parameter with optional value.
Definition
basics.hpp:1697
restinio
Definition
sendfile_operation_default.ipp:12
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::directives
directive_container_t directives
Definition
cache-control.hpp:48
restinio::http_field_parsers::cache_control_value_t::make_parser
static 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::try_parse
static 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::http_field_parsers::cache_control_value_t::directive_t
parameter_with_optional_value_t directive_t
Definition
cache-control.hpp:44
Generated by
1.17.0