libcaf  0.16.0
Public Member Functions | List of all members
caf::io::network::stream_impl< ProtocolPolicy > Class Template Reference

A concrete stream with a technology-dependent policy for sending and receiving data from a socket. More...

#include <stream_impl.hpp>

Inheritance diagram for caf::io::network::stream_impl< ProtocolPolicy >:
caf::io::network::stream caf::io::network::event_handler

Public Member Functions

template<class... Ts>
 stream_impl (default_multiplexer &mpx, native_socket sockfd, Ts &&... xs)
 
void handle_event (io::network::operation op) override
 Returns true once the requested operation is done, i.e., to signalize the multiplexer to remove this handler. More...
 
- Public Member Functions inherited from caf::io::network::stream
 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. More...
 
void ack_writes (bool x)
 
void write (const void *buf, size_t num_bytes)
 Copies data to the write buffer. More...
 
buffer_typewr_buf ()
 Returns the write buffer of this stream. More...
 
buffer_typerd_buf ()
 Returns the read buffer of this stream. More...
 
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. More...
 
void stop_reading ()
 Closes the read channel of the underlying socket and removes this handler from its parent. More...
 
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. More...
 
void force_empty_write (const manager_ptr &mgr)
 Forces this stream to subscribe to write events if no data is in the write buffer. More...
 
- Public Member Functions inherited from caf::io::network::event_handler
 event_handler (default_multiplexer &dm, native_socket sockfd)
 
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 has been called.
 
void close_read_channel ()
 Closes the read channel of the underlying socket.
 
void passivate ()
 Removes the file descriptor from the event loop of the parent.
 

Additional Inherited Members

- Public Types inherited from caf::io::network::stream
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. More...
 
- Protected Member Functions inherited from caf::io::network::stream
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 ()
 
- Protected Attributes inherited from caf::io::network::event_handler
int eventbf_
 
native_socket fd_
 
bool read_channel_closed_
 
default_multiplexer & backend_
 

Detailed Description

template<class ProtocolPolicy>
class caf::io::network::stream_impl< ProtocolPolicy >

A concrete stream with a technology-dependent policy for sending and receiving data from a socket.

Member Function Documentation

◆ handle_event()

template<class ProtocolPolicy>
void caf::io::network::stream_impl< ProtocolPolicy >::handle_event ( io::network::operation  op)
overridevirtual

Returns true once the requested operation is done, i.e., to signalize the multiplexer to remove this handler.

The handler remains in the event loop as long as it returns false.

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


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