69 void write(
const uint8_t in[],
size_t length);
75 void write(std::span<const uint8_t> in);
87 void write(
const std::vector<uint8_t>& in) {
write(in.data(), in.size()); }
93 void write(std::string_view in);
105 void write(uint8_t in);
112 void process_msg(
const uint8_t in[],
size_t length);
118 void process_msg(std::span<const uint8_t> input);
130 void process_msg(
const std::vector<uint8_t>& in);
136 void process_msg(std::string_view in);
150 [[nodiscard]]
size_t remaining(message_id msg = DEFAULT_MESSAGE)
const;
161 [[nodiscard]]
size_t read(uint8_t output[],
size_t length)
override;
172 [[nodiscard]]
size_t read(uint8_t output[],
size_t length, message_id msg);
183 [[nodiscard]]
size_t read(uint8_t& output, message_id msg = DEFAULT_MESSAGE);
197 [[nodiscard]] std::string read_all_as_string(message_id msg = DEFAULT_MESSAGE);
208 [[nodiscard]]
size_t peek(uint8_t output[],
size_t length,
size_t offset)
const override;
219 [[nodiscard]]
size_t peek(uint8_t output[],
size_t length,
size_t offset, message_id msg)
const;
229 [[nodiscard]]
size_t peek(uint8_t& output,
size_t offset, message_id msg = DEFAULT_MESSAGE)
const;
234 size_t get_bytes_read()
const override;
239 size_t get_bytes_read(message_id msg)
const;
241 bool check_available(
size_t n)
override;
242 bool check_available_msg(
size_t n, message_id msg)
const;
254 void set_default_msg(message_id msg);
260 message_id message_count()
const;
266 bool end_of_data()
const override;
316 void append_filter(
Filter* filt);
327 void prepend_filter(
Filter* filt);
352 void destruct(
Filter* filt);
353 void do_append(
Filter* filt);
354 void do_prepend(
Filter* filt);
355 void find_endpoints(
Filter* filt);
356 void clear_endpoints(
Filter* filt);