CAF 0.17.6
Loading...
Searching...
No Matches
caf::io::scribe Class Referenceabstract

Manages a stream. More...

#include <scribe.hpp>

Inheritance diagram for caf::io::scribe:
caf::io::broker_servant< network::stream_manager, connection_handle, new_data_msg > caf::io::network::stream_manager caf::io::network::manager caf::ref_counted caf::memory_managed caf::io::network::scribe_impl

Public Member Functions

 scribe (connection_handle conn_hdl)
virtual void configure_read (receive_policy::config config)=0
 Implicitly starts the read loop on first call.
virtual void ack_writes (bool enable)=0
 Enables or disables write notifications.
virtual std::vector< char > & wr_buf ()=0
 Returns the current output buffer.
virtual std::vector< char > & rd_buf ()=0
 Returns the current input buffer.
virtual void flush ()=0
 Flushes the output buffer, i.e., sends the content of the buffer via the network.
bool consume (execution_unit *, const void *, size_t) override
 Called by the underlying I/O device whenever it received data.
void data_transferred (execution_unit *, size_t, size_t) override
 Called by the underlying I/O device whenever it sent data.
Public Member Functions inherited from caf::io::broker_servant< network::stream_manager, connection_handle, new_data_msg >
 broker_servant (handle_type x)
handle_type hdl () const
void halt ()
void trigger ()
void trigger (size_t num)
optional< size_t > activity_tokens () const
Public Member Functions inherited from caf::io::network::stream_manager
virtual uint16_t port () const =0
 Get the port of the underlying I/O device.
Public Member Functions inherited from caf::io::network::manager
void set_parent (abstract_broker *ptr)
 Sets the parent for this manager.
abstract_brokerparent ()
 Returns the parent broker of this manager.
bool detached () const
 Returns true if this manager has a parent, false otherwise.
Public Member Functions inherited from caf::ref_counted
 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

Protected Member Functions

message detach_message () override
Protected Member Functions inherited from caf::io::broker_servant< network::stream_manager, connection_handle, new_data_msg >
void detach_from (abstract_broker *ptr) override
void invoke_mailbox_element_impl (execution_unit *ctx, mailbox_element &x)
bool invoke_mailbox_element (execution_unit *ctx)
new_data_msgmsg ()

Additional Inherited Members

Public Types inherited from caf::io::broker_servant< network::stream_manager, connection_handle, new_data_msg >
using handle_type
Protected Attributes inherited from caf::io::broker_servant< network::stream_manager, connection_handle, new_data_msg >
handle_type hdl_
mailbox_element_vals< new_data_msgvalue_
optional< size_t > activity_tokens_
Protected Attributes inherited from caf::ref_counted
std::atomic< size_t > rc_

Detailed Description

Manages a stream.

Member Function Documentation

◆ ack_writes()

virtual void caf::io::scribe::ack_writes ( bool enable)
pure virtual

Enables or disables write notifications.

Implemented in caf::io::network::scribe_impl.

◆ configure_read()

virtual void caf::io::scribe::configure_read ( receive_policy::config config)
pure virtual

Implicitly starts the read loop on first call.

Implemented in caf::io::network::scribe_impl.

◆ consume()

bool caf::io::scribe::consume ( execution_unit * ctx,
const void * buf,
size_t bsize )
overridevirtual

Called by the underlying I/O device whenever it received data.

Returns
true if the manager accepts further reads, otherwise false.

Implements caf::io::network::stream_manager.

◆ data_transferred()

void caf::io::scribe::data_transferred ( execution_unit * ctx,
size_t num_bytes,
size_t remaining_bytes )
overridevirtual

Called by the underlying I/O device whenever it sent data.

Implements caf::io::network::stream_manager.

◆ flush()

virtual void caf::io::scribe::flush ( )
pure virtual

Flushes the output buffer, i.e., sends the content of the buffer via the network.

Implemented in caf::io::network::scribe_impl.

◆ rd_buf()

virtual std::vector< char > & caf::io::scribe::rd_buf ( )
pure virtual

Returns the current input buffer.

Implemented in caf::io::network::scribe_impl.

◆ wr_buf()

virtual std::vector< char > & caf::io::scribe::wr_buf ( )
pure virtual

Returns the current output buffer.

Implemented in caf::io::network::scribe_impl.


The documentation for this class was generated from the following file: