1[/ 2 Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) 3 4 Distributed under the Boost Software License, Version 1.0. (See accompanying 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 7 Official repository: https://github.com/boostorg/beast 8] 9 10[section Custom Parsers] 11 12While the parsers included in the library will handle a broad number of 13use-cases, the __basic_parser__ interface can be subclassed to implement 14custom strategies for storing parsed results: the basic parser processes 15input buffers into elements according to the HTTP/1 protocol specification, 16while the derived class decides what to do with those elements. Custom parsers 17will work with all of the HTTP stream read algorithms, as those algorithms use 18only the basic parser interface. Some use cases for implementing custom 19parsers are: 20 21* Inspect incoming header fields and keep or discard them. 22 23* Use a container provided by an external interface. 24 25The basic parser uses virtual functions. To declare your user-defined parser, 26derive from __basic_parser__ and implement all the required virtual functions. 27A declaration for the derived class may look like this: 28 29[code_http_10_custom_parser] 30 31[endsect] 32