CAF 0.17.6
Loading...
Searching...
No Matches
caf::io::network::datagram_servant_impl Class Reference

Default datagram servant implementation. More...

#include <datagram_servant_impl.hpp>

Inheritance diagram for caf::io::network::datagram_servant_impl:
caf::io::datagram_servant caf::io::broker_servant< network::datagram_manager, datagram_handle, new_datagram_msg > caf::io::network::datagram_manager caf::io::network::manager caf::ref_counted caf::memory_managed

Public Member Functions

 datagram_servant_impl (default_multiplexer &mx, native_socket sockfd, int64_t id)
bool new_endpoint (network::receive_buffer &buf) override
 Called by the underlying I/O device to indicate that a new remote endpoint has been detected, passing in the received datagram.
void ack_writes (bool enable) override
 Enables or disables write notifications.
std::vector< char > & wr_buf (datagram_handle hdl) override
 Returns a new output buffer.
void enqueue_datagram (datagram_handle hdl, std::vector< char > buf) override
 Enqueue a buffer to be sent as a datagram.
network::receive_bufferrd_buf () override
 Returns the current input buffer.
void graceful_shutdown () override
void flush () override
 Flushes the output buffer, i.e., sends the content of the buffer via the network.
std::string addr () const override
uint16_t port (datagram_handle hdl) const override
 Get the port of the underlying I/O device.
uint16_t local_port () const override
 Returns the local port of associated socket.
std::vector< datagram_handlehdls () const override
 Returns all the handles associated with this servant.
void add_endpoint (const ip_endpoint &ep, datagram_handle hdl) override
 Adds a new remote endpoint identified by the ip_endpoint to the related manager.
void remove_endpoint (datagram_handle hdl) override
void launch () override
void add_to_loop () override
void remove_from_loop () override
void detach_handles () override
Public Member Functions inherited from caf::io::datagram_servant
 datagram_servant (datagram_handle hdl)
bool consume (execution_unit *, datagram_handle hdl, network::receive_buffer &buf) override
 Called by the underlying I/O device whenever it received data.
void datagram_sent (execution_unit *, datagram_handle hdl, size_t, std::vector< char > buffer) override
 Called by the underlying I/O device whenever it sent data.
Public Member Functions inherited from caf::io::broker_servant< network::datagram_manager, datagram_handle, new_datagram_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::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

Additional Inherited Members

Public Types inherited from caf::io::broker_servant< network::datagram_manager, datagram_handle, new_datagram_msg >
using handle_type
Protected Member Functions inherited from caf::io::datagram_servant
message detach_message () override
Protected Member Functions inherited from caf::io::broker_servant< network::datagram_manager, datagram_handle, new_datagram_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_datagram_msgmsg ()
Protected Attributes inherited from caf::io::broker_servant< network::datagram_manager, datagram_handle, new_datagram_msg >
handle_type hdl_
mailbox_element_vals< new_datagram_msgvalue_
optional< size_t > activity_tokens_
Protected Attributes inherited from caf::ref_counted
std::atomic< size_t > rc_

Detailed Description

Default datagram servant implementation.

Member Function Documentation

◆ ack_writes()

void caf::io::network::datagram_servant_impl::ack_writes ( bool enable)
overridevirtual

Enables or disables write notifications.

Implements caf::io::datagram_servant.

◆ add_endpoint()

void caf::io::network::datagram_servant_impl::add_endpoint ( const ip_endpoint & ep,
datagram_handle hdl )
overridevirtual

Adds a new remote endpoint identified by the ip_endpoint to the related manager.

Implements caf::io::datagram_servant.

◆ detach_handles()

void caf::io::network::datagram_servant_impl::detach_handles ( )
overridevirtual

◆ enqueue_datagram()

void caf::io::network::datagram_servant_impl::enqueue_datagram ( datagram_handle ,
std::vector< char >  )
overridevirtual

Enqueue a buffer to be sent as a datagram.

Implements caf::io::datagram_servant.

◆ flush()

void caf::io::network::datagram_servant_impl::flush ( )
overridevirtual

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

Implements caf::io::datagram_servant.

◆ hdls()

std::vector< datagram_handle > caf::io::network::datagram_servant_impl::hdls ( ) const
overridevirtual

Returns all the handles associated with this servant.

Implements caf::io::datagram_servant.

◆ launch()

void caf::io::network::datagram_servant_impl::launch ( )
overridevirtual

◆ local_port()

uint16_t caf::io::network::datagram_servant_impl::local_port ( ) const
overridevirtual

Returns the local port of associated socket.

Implements caf::io::datagram_servant.

◆ new_endpoint()

bool caf::io::network::datagram_servant_impl::new_endpoint ( network::receive_buffer & buf)
overridevirtual

Called by the underlying I/O device to indicate that a new remote endpoint has been detected, passing in the received datagram.

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

Implements caf::io::network::datagram_manager.

◆ port()

uint16_t caf::io::network::datagram_servant_impl::port ( datagram_handle ) const
overridevirtual

Get the port of the underlying I/O device.

Implements caf::io::network::datagram_manager.

◆ rd_buf()

network::receive_buffer & caf::io::network::datagram_servant_impl::rd_buf ( )
overridevirtual

Returns the current input buffer.

Implements caf::io::datagram_servant.

◆ remove_endpoint()

void caf::io::network::datagram_servant_impl::remove_endpoint ( datagram_handle hdl)
overridevirtual

◆ wr_buf()

std::vector< char > & caf::io::network::datagram_servant_impl::wr_buf ( datagram_handle )
overridevirtual

Returns a new output buffer.

Implements caf::io::datagram_servant.


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