C++ Actor Framework 1.0.0
|
Reads from an observable buffer and emits the consumed items. More...
#include <from_resource.hpp>
Public Types | |
using | value_type = typename Buffer::value_type |
using | buffer_ptr = intrusive_ptr<Buffer> |
Public Types inherited from caf::flow::subscription::impl | |
using | handle_type = subscription |
Public Member Functions | |
from_resource_sub (coordinator *parent, buffer_ptr buf, observer< value_type > out) | |
coordinator * | parent () const noexcept override |
Returns the coordinator this object lives on. | |
bool | disposed () const noexcept override |
void | dispose () override |
void | cancel () override |
Signals that the observer is no longer interested in receiving items. | |
void | request (size_t n) override |
Signals demand for n more items. | |
void | on_producer_ready () override |
Called to signal that the producer started emitting items. | |
void | on_producer_wakeup () override |
Called to signal to the consumer that the producer added an item to a previously empty source or completed the flow of events. | |
void | ref_consumer () const noexcept override |
Increases the reference count of the consumer. | |
void | deref_consumer () const noexcept override |
Decreases the reference count of the consumer and destroys the object if necessary. | |
void | ref_disposable () const noexcept override |
void | deref_disposable () const noexcept override |
void | ref_coordinated () const noexcept override |
Increases the reference count of the coordinated. | |
void | deref_coordinated () const noexcept override |
Decreases the reference count of the coordinated and destroys the object if necessary. | |
Public Member Functions inherited from caf::detail::atomic_ref_counted | |
atomic_ref_counted (const atomic_ref_counted &) | |
atomic_ref_counted & | operator= (const atomic_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 |
Queries the current reference count for this object. | |
Public Member Functions inherited from caf::disposable::impl | |
disposable | as_disposable () noexcept |
Friends | |
void | intrusive_ptr_add_ref (const from_resource_sub *ptr) noexcept |
void | intrusive_ptr_release (const from_resource_sub *ptr) noexcept |
Additional Inherited Members | |
Protected Attributes inherited from caf::detail::atomic_ref_counted | |
std::atomic< size_t > | rc_ |
Related Symbols inherited from caf::flow::coordinated | |
using | coordinated_ptr = intrusive_ptr<coordinated> |
Related Symbols inherited from caf::async::consumer | |
using | consumer_ptr = intrusive_ptr<consumer> |
void | intrusive_ptr_add_ref (const consumer *p) noexcept |
void | intrusive_ptr_release (const consumer *p) noexcept |
Reads from an observable buffer and emits the consumed items.
|
overridevirtual |
Signals that the observer is no longer interested in receiving items.
Only the observer may call this member function. The difference between cancel
and dispose
is that the latter will call on_complete
on the observer if it has not been called yet. Furthermore, dispose
has to assume that it has been called from outside of the event loop and thus usually schedules an event to clean up the subscription. In contrast, cancel
can assume that it has been called from within the event loop and thus can clean up the subscription immediately.
Implements caf::flow::subscription::impl.
|
overridevirtualnoexcept |
Decreases the reference count of the consumer and destroys the object if necessary.
Implements caf::async::consumer.
|
overridevirtualnoexcept |
Decreases the reference count of the coordinated and destroys the object if necessary.
Implements caf::flow::coordinated.
|
overridevirtualnoexcept |
Implements caf::disposable::impl.
|
overridevirtual |
Implements caf::disposable::impl.
|
overridevirtualnoexcept |
Implements caf::disposable::impl.
|
overridevirtual |
Called to signal that the producer started emitting items.
Implements caf::async::consumer.
|
overridevirtual |
Called to signal to the consumer that the producer added an item to a previously empty source or completed the flow of events.
Implements caf::async::consumer.
|
overridevirtualnoexcept |
Returns the coordinator this object lives on.
Implements caf::flow::coordinated.
|
overridevirtualnoexcept |
Increases the reference count of the consumer.
Implements caf::async::consumer.
|
overridevirtualnoexcept |
Increases the reference count of the coordinated.
Implements caf::flow::coordinated.
|
overridevirtualnoexcept |
Implements caf::disposable::impl.
|
overridevirtual |
Signals demand for n
more items.
Implements caf::flow::subscription::impl.