Line data Source code
1 : // 2 : // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.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/CPPAlliance/http_proto 8 : // 9 : 10 : #ifndef BOOST_HTTP_PROTO_DETAIL_CODEC_HPP 11 : #define BOOST_HTTP_PROTO_DETAIL_CODEC_HPP 12 : 13 : #include <boost/http_proto/error.hpp> 14 : #include <cstdlib> 15 : 16 : namespace boost { 17 : namespace http_proto { 18 : namespace detail { 19 : 20 : struct BOOST_SYMBOL_VISIBLE 21 2 : codec 22 : { 23 : struct results 24 : { 25 : error_code ec; 26 : std::size_t input_used = 0; 27 : std::size_t output_used = 0; 28 : }; 29 : 30 : BOOST_HTTP_PROTO_DECL 31 : virtual ~codec(); 32 : 33 : virtual 34 : results 35 : exchange( 36 : void* output, 37 : std::size_t output_size, 38 : void const* input, 39 : std::size_t input_size) = 0; 40 : }; 41 : 42 : } // detail 43 : } // http_proto 44 : } // boost 45 : 46 : #endif