RESTinio
|
Various tools for working with multipart bodies. More...
#include <restinio/helpers/string_algo.hpp>
#include <restinio/helpers/easy_parser.hpp>
#include <restinio/helpers/http_field_parsers/basics.hpp>
#include <restinio/helpers/http_field_parsers/content-type.hpp>
#include <restinio/http_headers.hpp>
#include <restinio/request_handler.hpp>
#include <restinio/expected.hpp>
#include <restinio/impl/string_caseless_compare.hpp>
#include <restinio/utils/metaprogramming.hpp>
#include <iostream>
Go to the source code of this file.
Classes | |
struct | restinio::multipart_body::parsed_part_t |
A description of parsed content of one part of a multipart body. More... | |
struct | restinio::multipart_body::impl::parser_details::body_producer_t |
A special producer that consumes the whole remaining content from the input stream. More... | |
struct | restinio::multipart_body::impl::parser_details::field_value_producer_t |
A special producer that consumes the rest of the current line in the input stream until CR/LF will be found. More... | |
struct | restinio::multipart_body::impl::valid_handler_type< typename, typename > |
struct | restinio::multipart_body::impl::valid_handler_type< T, restinio::utils::metaprogramming::void_t< std::enable_if_t< std::is_same< handling_result_t, decltype(std::declval< T >()(std::declval< parsed_part_t >())) >::value, bool > > > |
Namespaces | |
namespace | restinio |
namespace | restinio::multipart_body |
namespace | restinio::multipart_body::impl |
namespace | restinio::multipart_body::impl::parser_details |
namespace | restinio::multipart_body::impl::boundary_value_checkers |
Enumerations | |
enum class | restinio::multipart_body::handling_result_t { restinio::multipart_body::continue_enumeration , restinio::multipart_body::stop_enumeration , restinio::multipart_body::terminate_enumeration } |
The result to be returned from user-provided handler of parts of multipart body. More... | |
enum class | restinio::multipart_body::enumeration_error_t { restinio::multipart_body::content_type_field_not_found , restinio::multipart_body::content_type_field_parse_error , restinio::multipart_body::content_type_field_inappropriate_value , restinio::multipart_body::illegal_boundary_value , restinio::multipart_body::no_parts_found , restinio::multipart_body::terminated_by_handler , restinio::multipart_body::unexpected_error } |
The result of an attempt to enumerate parts of a multipart body. More... | |
Functions | |
RESTINIO_NODISCARD std::vector< string_view_t > | restinio::multipart_body::split_multipart_body (string_view_t body, string_view_t boundary) |
Helper function for spliting a multipart body into a serie of separate parts. More... | |
RESTINIO_NODISCARD auto | restinio::multipart_body::impl::make_parser () |
A factory function for a parser of a part of multipart message. More... | |
RESTINIO_NODISCARD expected_t< parsed_part_t, restinio::easy_parser::parse_error_t > | restinio::multipart_body::try_parse_part (string_view_t part) |
Helper function for parsing content of one part of a multipart body. More... | |
RESTINIO_NODISCARD constexpr bool | restinio::multipart_body::impl::boundary_value_checkers::is_bcharnospace (char ch) |
RESTINIO_NODISCARD constexpr bool | restinio::multipart_body::impl::boundary_value_checkers::is_bchar (char ch) |
RESTINIO_NODISCARD optional_t< enumeration_error_t > | restinio::multipart_body::check_boundary_value (string_view_t value) |
A helper function for checking the validity of 'boundary' value. More... | |
template<typename Extra_Data > | |
RESTINIO_NODISCARD expected_t< std::string, enumeration_error_t > | restinio::multipart_body::detect_boundary_for_multipart_body (const generic_request_t< Extra_Data > &req, string_view_t expected_media_type, optional_t< string_view_t > expected_media_subtype) |
Helper function for parsing Content-Type field and extracting the value of 'boundary' parameter. More... | |
template<typename Handler > | |
RESTINIO_NODISCARD expected_t< std::size_t, enumeration_error_t > | restinio::multipart_body::impl::enumerate_parts_of_request_body (const std::vector< string_view_t > &parts, Handler &&handler) |
A function that parses every part of a multipart body and calls a user-provided handler for every parsed part. More... | |
template<typename User_Type , typename Handler > | |
RESTINIO_NODISCARD expected_t< std::size_t, enumeration_error_t > | restinio::multipart_body::enumerate_parts (const generic_request_t< User_Type > &req, Handler &&handler, string_view_t expected_media_type=string_view_t{ "multipart" }, optional_t< string_view_t > expected_media_subtype=nullopt) |
A helper function for enumeration of parts of a multipart body. More... | |
Variables | |
constexpr char | restinio::multipart_body::impl::parser_details::CR = '\r' |
constexpr char | restinio::multipart_body::impl::parser_details::LF = '\n' |
Various tools for working with multipart bodies.
Definition in file multipart_body.hpp.