Loading...
Searching...
No Matches
caf::io::network::stream Class Reference

A stream capable of both reading and writing. More...

`#include <stream.hpp>`

Inheritance diagram for caf::io::network::stream:

## Public Types

using | manager_ptr = intrusive_ptr<stream_manager>
| A smart pointer to a stream manager.
using | buffer_type = std::vector<char>
| A buffer class providing a compatible interface to std::vector.

## Public Member Functions

| stream (default_multiplexer &backend_ref, native_socket sockfd)
void | start (stream_manager *mgr)
| Starts reading data from the socket, forwarding incoming data to mgr.
void | activate (stream_manager *mgr)
| Activates the stream.
void | configure_read (receive_policy::config config)
| Configures how much data will be provided for the next consume callback.
void | write (const void *buf, size_t num_bytes)
| Copies data to the write buffer.
buffer_type & | wr_buf ()
| Returns the write buffer of this stream.
buffer_type & | rd_buf ()
| Returns the read buffer of this stream.
void | flush (const manager_ptr &mgr)
| Sends the content of the write buffer, calling the io_failure member function of mgr in case of an error.
void | removed_from_loop (operation op) override
| Callback to signalize that this handler has been removed from the event loop for operations of type op.
void | graceful_shutdown () override
| Shuts down communication on the managed socket, eventually removing this event handler from the I/O loop.
void | force_empty_write (const manager_ptr &mgr)
| Forces this stream to subscribe to write events if no data is in the write buffer.
Public Member Functions inherited from caf::io::network::event_handler
| event_handler (default_multiplexer &dm, native_socket sockfd)
virtual void | handle_event (operation op)=0
| Returns true once the requested operation is done, i.e., to signalize the multiplexer to remove this handler.
native_socket | fd () const
| Returns the native socket handle for this handler.
default_multiplexer & | backend ()
| Returns the multiplexer this acceptor belongs to.
int | eventbf () const
| Returns the bit field storing the subscribed events.
void | eventbf (int value)
| Sets the bit field storing the subscribed events.
bool | read_channel_closed () const
| Checks whether close_read_channel has been called.
void | passivate ()
| Removes the file descriptor from the event loop of the parent.
bool | ack_writes ()
| Returns whether this event handlers signals successful writes to its parent actor.
void | ack_writes (bool x)
| Sets whether this event handlers signals successful writes to its parent actor.

## Protected Member Functions

template<class Policy>
void | handle_event_impl (io::network::operation op, Policy &policy)
Protected Member Functions inherited from caf::io::network::event_handler
void | activate ()
| Adds the file descriptor to the event loop of the parent.
void | set_fd_flags ()
| Sets flags for asynchronous event handling on the socket handle.

## Additional Inherited Members

Protected Attributes inherited from caf::io::network::event_handler
native_socket | fd_
state | state_
int | eventbf_
default_multiplexer & | backend_

## Detailed Description

A stream capable of both reading and writing.

The stream's input data is forwarded to its `manager`.

## Member Function Documentation

## configure_read()

void caf::io::network::stream::configure_read | ( | receive_policy::config | config | ) |

Configures how much data will be provided for the next consume callback.

Warning
  Must not be called outside the IO multiplexers event loop once the stream has been started.

## flush()

void caf::io::network::stream::flush | ( | const manager_ptr & | mgr | ) |

Sends the content of the write buffer, calling the io_failure member function of mgr in case of an error.

Warning
  Must not be called outside the IO multiplexers event loop once the stream has been started.

## graceful_shutdown()

void caf::io::network::stream::graceful_shutdown | ( |  | ) |

override virtual

Shuts down communication on the managed socket, eventually removing this event handler from the I/O loop.

Implements caf::io::network::event_handler.

## rd_buf()

buffer_type & caf::io::network::stream::rd_buf | ( |  | ) |

Returns the read buffer of this stream.

Warning
  Must not be modified outside the IO multiplexers event loop once the stream has been started.

## removed_from_loop()

void caf::io::network::stream::removed_from_loop | ( | operation | op | ) |

override virtual

Callback to signalize that this handler has been removed from the event loop for operations of type op.

Implements caf::io::network::event_handler.

## wr_buf()

buffer_type & caf::io::network::stream::wr_buf | ( |  | ) |

Returns the write buffer of this stream.

Warning
  Must not be modified outside the IO multiplexers event loop once the stream has been started.

## write()

void caf::io::network::stream::write | ( | const void * | buf,
|  | size_t | num_bytes )

Copies data to the write buffer.

Warning
  Not thread safe.

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

- /build/actor-framework-Z9pIPl/actor-framework-0.17.6/libcaf_io/caf/io/network/stream.hpp