70 void write(
const uint8_t in[],
size_t length);
76 void write(std::span<const uint8_t> in);
88 void write(
const std::vector<uint8_t>& in) {
write(in.data(), in.size()); }
94 void write(std::string_view in);
106 void write(uint8_t in);
113 void process_msg(
const uint8_t in[],
size_t length);
119 void process_msg(std::span<const uint8_t> input);
131 void process_msg(
const std::vector<uint8_t>& in);
137 void process_msg(std::string_view in);
151 [[nodiscard]]
size_t remaining(message_id msg = DEFAULT_MESSAGE)
const;
162 [[nodiscard]]
size_t read(uint8_t output[],
size_t length)
override;
173 [[nodiscard]]
size_t read(uint8_t output[],
size_t length, message_id msg);
184 [[nodiscard]]
size_t read(uint8_t& output, message_id msg = DEFAULT_MESSAGE);
198 [[nodiscard]] std::string read_all_as_string(message_id msg = DEFAULT_MESSAGE);
209 [[nodiscard]]
size_t peek(uint8_t output[],
size_t length,
size_t offset)
const override;
220 [[nodiscard]]
size_t peek(uint8_t output[],
size_t length,
size_t offset, message_id msg)
const;
230 [[nodiscard]]
size_t peek(uint8_t& output,
size_t offset, message_id msg = DEFAULT_MESSAGE)
const;
236 size_t get_bytes_read()
const override;
242 size_t get_bytes_read(message_id msg)
const;
249 bool check_available(
size_t n)
override;
256 bool check_available_msg(
size_t n, message_id msg)
const;
269 void set_default_msg(message_id msg);
275 message_id message_count()
const;
281 bool end_of_data()
const override;
331 void append_filter(
Filter* filt);
342 void prepend_filter(
Filter* filt);
370 void destruct(
Filter* filt);
371 void do_append(
Filter* filt);
372 void do_prepend(
Filter* filt);
373 void find_endpoints(
Filter* filt);
374 void clear_endpoints(
Filter* filt);