|
| continuation | further (message_ptr msg) const |
template<typename T>
requires (!std::is_convertible_v<std::remove_cvref_t<T>, message_ptr> && !std::derived_from<std::remove_cvref_t<T>, message_base>) |
| continuation | further (T &&object) const |
| continuation | back (message_ptr msg) const |
template<typename T>
requires (!std::is_convertible_v<std::remove_cvref_t<T>, message_ptr> && !std::derived_from<std::remove_cvref_t<T>, message_base>) |
| continuation | back (T &&object) const |
| continuation | operator() (message_ptr msg) const |
template<typename T>
requires (!std::is_convertible_v<std::remove_cvref_t<T>, message_ptr> && !std::derived_from<std::remove_cvref_t<T>, message_base>) |
| continuation | operator() (T &&object) const |
Callback bundle used by pipeline elements to emit messages.
There are two independent directions:
- further sends a message to the next element on the right.
- back sends a message back to the beginning of the fully assembled pipeline so that it can be processed by the whole pipeline again.
back is intended for embedded/nested content. For example, a document parser may discover an embedded image and call back(image_data) so that the image is processed again from the pipeline source and can reach OCR.
- Note
- A back-emitted message must not be pipeline::start_processing. Sending start_processing backwards is indistinguishable from the initial pipeline start and can cause infinite recursion.
-
Both further and back wrap raw payload types into a message<T>. Passing an already-created message_ptr forwards it without re-wrapping.
Definition at line 89 of file message.h.