|
| stream_manager (scheduled_actor *selfptr, stream_priority prio=stream_priority::normal) |
|
virtual void | handle (inbound_path *from, downstream_msg::batch &x) |
|
virtual void | handle (inbound_path *from, downstream_msg::close &x) |
|
virtual void | handle (inbound_path *from, downstream_msg::forced_close &x) |
|
virtual bool | handle (stream_slots, upstream_msg::ack_open &x) |
|
virtual void | handle (stream_slots slots, upstream_msg::ack_batch &x) |
|
virtual void | handle (stream_slots slots, upstream_msg::drop &x) |
|
virtual void | handle (stream_slots slots, upstream_msg::forced_drop &x) |
|
virtual void | stop (error reason=none) |
| Closes all output and input paths and sends the final result to the client.
|
|
virtual void | shutdown () |
| Mark this stream as shutting down, only allowing flushing all related buffers of in- and outbound paths.
|
|
void | advance () |
| Tries to advance the stream by generating more credit or by sending batches.
|
|
virtual void | push () |
| Pushes new data to downstream actors by sending batches. More...
|
|
virtual bool | congested () const noexcept |
| Returns true if the handler is not able to process any further batches since it is unable to make progress sending on its own.
|
|
virtual void | deliver_handshake (response_promise &rp, stream_slot slot, message handshake) |
| Sends a handshake to dest . More...
|
|
virtual bool | generate_messages () |
| Tries to generate new messages for the stream. More...
|
|
virtual downstream_manager & | out ()=0 |
| Returns the manager for downstream communication.
|
|
const downstream_manager & | out () const |
| Returns the manager for downstream communication.
|
|
virtual bool | done () const =0 |
| Returns whether the manager has reached the end and can be discarded safely.
|
|
virtual bool | idle () const noexcept=0 |
| Returns whether the manager cannot make any progress on its own at the moment. More...
|
|
virtual void | cycle_timeout (size_t cycle_nr) |
| Advances time.
|
|
virtual void | register_input_path (inbound_path *x) |
| Informs the manager that a new input path opens. More...
|
|
virtual void | deregister_input_path (inbound_path *x) noexcept |
| Informs the manager that an input path closes. More...
|
|
virtual void | remove_input_path (stream_slot slot, error reason, bool silent) |
| Removes an input path.
|
|
bool | shutting_down () const noexcept |
| Returns whether this stream is shutting down.
|
|
bool | continuous () const noexcept |
| Returns whether this stream remains open even if no in- or outbound paths exist. More...
|
|
void | continuous (bool x) noexcept |
| Sets whether this stream remains open even if no in- or outbound paths exist.
|
|
const inbound_paths_list & | inbound_paths () const noexcept |
| Returns the list of inbound paths.
|
|
inbound_path * | get_inbound_path (stream_slot x) const noexcept |
| Returns the inbound paths at slot x .
|
|
bool | inbound_paths_idle () const noexcept |
| Queries whether all inbound paths are up-to-date and have non-zero credit. More...
|
|
scheduled_actor * | self () |
| Returns the parent actor.
|
|
virtual int32_t | acquire_credit (inbound_path *path, int32_t desired) |
| Acquires credit on an inbound path. More...
|
|
stream_slot | add_unchecked_inbound_path_impl () |
| Adds the current sender as an inbound path. More...
|
|
| ref_counted (const ref_counted &) |
|
ref_counted & | operator= (const ref_counted &) |
|
void | ref () const noexcept |
| Increases reference count by one.
|
|
void | deref () const noexcept |
| Decreases reference count by one and calls request_deletion when it drops to zero.
|
|
bool | unique () const noexcept |
| Queries whether there is exactly one reference.
|
|
size_t | get_reference_count () const noexcept |
|
virtual void | request_deletion (bool decremented_rc) const noexcept |
| Default implementations calls `delete this, but can be overriden in case deletion depends on some condition or the class doesn't use default new/delete. More...
|
|
Manages a single stream with any number of in- and outbound paths.