MCPcopy Create free account
hub / github.com/boostorg/asio / consume

Method consume

example/cpp11/http/server/request_parser.cpp:27–283  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25}
26
27request_parser::result_type request_parser::consume(request& req, char input)
28{
29 switch (state_)
30 {
31 case method_start:
32 if (!is_char(input) || is_ctl(input) || is_tspecial(input))
33 {
34 return bad;
35 }
36 else
37 {
38 state_ = method;
39 req.method.push_back(input);
40 return indeterminate;
41 }
42 case method:
43 if (input == ' ')
44 {
45 state_ = uri;
46 return indeterminate;
47 }
48 else if (!is_char(input) || is_ctl(input) || is_tspecial(input))
49 {
50 return bad;
51 }
52 else
53 {
54 req.method.push_back(input);
55 return indeterminate;
56 }
57 case uri:
58 if (input == ' ')
59 {
60 state_ = http_version_h;
61 return indeterminate;
62 }
63 else if (is_ctl(input))
64 {
65 return bad;
66 }
67 else
68 {
69 req.uri.push_back(input);
70 return indeterminate;
71 }
72 case http_version_h:
73 if (input == 'H')
74 {
75 state_ = http_version_t_1;
76 return indeterminate;
77 }
78 else
79 {
80 return bad;
81 }
82 case http_version_t_1:
83 if (input == 'T')
84 {

Calls 2

headerClass · 0.70
emptyMethod · 0.45