12#include <botan/data_src.h>
13#include <botan/exceptn.h>
14#include <initializer_list>
64 void write(
const uint8_t in[],
size_t length);
76 void write(
const std::vector<uint8_t>& in) {
write(in.data(), in.size()); }
82 void write(std::string_view in);
94 void write(uint8_t in);
101 void process_msg(
const uint8_t in[],
size_t length);
113 void process_msg(
const std::vector<uint8_t>& in);
119 void process_msg(std::string_view in);
133 [[nodiscard]]
size_t remaining(message_id msg = DEFAULT_MESSAGE)
const;
144 [[nodiscard]]
size_t read(uint8_t output[],
size_t length)
override;
155 [[nodiscard]]
size_t read(uint8_t output[],
size_t length, message_id msg);
166 [[nodiscard]]
size_t read(uint8_t& output, message_id msg = DEFAULT_MESSAGE);
180 [[nodiscard]] std::string read_all_as_string(message_id msg = DEFAULT_MESSAGE);
191 [[nodiscard]]
size_t peek(uint8_t output[],
size_t length,
size_t offset)
const override;
202 [[nodiscard]]
size_t peek(uint8_t output[],
size_t length,
size_t offset, message_id msg)
const;
212 [[nodiscard]]
size_t peek(uint8_t& output,
size_t offset, message_id msg = DEFAULT_MESSAGE)
const;
217 size_t get_bytes_read()
const override;
222 size_t get_bytes_read(message_id msg)
const;
224 bool check_available(
size_t n)
override;
225 bool check_available_msg(
size_t n, message_id msg)
const;
237 void set_default_msg(message_id msg);
243 message_id message_count()
const;
249 bool end_of_data()
const override;
299 void append_filter(
Filter* filt);
310 void prepend_filter(
Filter* filt);
322 explicit
Pipe(std::initializer_list<
Filter*> filters);
331 void do_append(
Filter* filt);
332 void do_prepend(
Filter* filt);
333 void find_endpoints(
Filter*);
334 void clear_endpoints(
Filter*);
362#if defined(BOTAN_HAS_PIPE_UNIXFD_IO)
363 #include <botan/fd_unix.h>
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_DEPRECATED(msg)
Invalid_Argument(std::string_view msg)
Invalid_Message_Number(std::string_view where, message_id msg)
static const message_id LAST_MESSAGE
void write(const uint8_t in[], size_t length)
size_t default_msg() const
static const message_id DEFAULT_MESSAGE
Pipe(Filter *=nullptr, Filter *=nullptr, Filter *=nullptr, Filter *=nullptr)
void write(const secure_vector< uint8_t > &in)
void write(const std::vector< uint8_t > &in)
std::vector< T, secure_allocator< T > > secure_vector