CAF  0.17.3
Public Member Functions | List of all members
caf::io::network::datagram_manager Class Referenceabstract

A datagram manager provides callbacks for outgoing datagrams as well as for error handling. More...

#include <datagram_manager.hpp>

Inheritance diagram for caf::io::network::datagram_manager:
caf::io::network::manager caf::ref_counted caf::memory_managed

Public Member Functions

virtual bool consume (execution_unit *, datagram_handle hdl, receive_buffer &buf)=0
 Called by the underlying I/O device whenever it received data. More...
 
virtual void datagram_sent (execution_unit *, datagram_handle hdl, size_t, std::vector< char > buffer)=0
 Called by the underlying I/O device whenever it sent data.
 
virtual bool new_endpoint (receive_buffer &buf)=0
 Called by the underlying I/O device to indicate that a new remote endpoint has been detected, passing in the received datagram. More...
 
virtual uint16_t port (datagram_handle) 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. More...
 
abstract_brokerparent ()
 Returns the parent broker of this manager.
 
bool detached () const
 Returns true if this manager has a parent, false otherwise.
 
void detach (execution_unit *ctx, bool invoke_disconnect_message)
 Detach this manager from its parent and invoke detach_message() ifinvoke_detach_message == true`.
 
virtual void graceful_shutdown ()=0
 Causes the manager to gracefully close its connection.
 
virtual void remove_from_loop ()=0
 Removes the I/O device to the event loop of the middleman.
 
virtual void add_to_loop ()=0
 Adds the I/O device to the event loop of the middleman.
 
void io_failure (execution_unit *ctx, operation op)
 Detaches this manager from its parent in case of an error.
 
virtual std::string addr () const =0
 Get the address of the underlying I/O device.
 
- Public Member Functions inherited from caf::ref_counted
 ref_counted (const ref_counted &)
 
ref_countedoperator= (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
 
- Public Member Functions inherited from caf::memory_managed
virtual void request_deletion (bool decremented_rc) const noexcept
 Default implementations calls `delete this, but can be overriden in case deletion depends on some condition or the class doesn't use default new/delete. More...
 

Additional Inherited Members

- Protected Member Functions inherited from caf::io::network::manager
virtual message detach_message ()=0
 Creates a message signalizing a disconnect to the parent.
 
virtual void detach_from (abstract_broker *ptr)=0
 Detaches this manager from ptr.
 
- Protected Attributes inherited from caf::io::network::manager
strong_actor_ptr parent_
 
- Protected Attributes inherited from caf::ref_counted
std::atomic< size_t > rc_
 

Detailed Description

A datagram manager provides callbacks for outgoing datagrams as well as for error handling.

Member Function Documentation

◆ consume()

virtual bool caf::io::network::datagram_manager::consume ( execution_unit ,
datagram_handle  hdl,
receive_buffer buf 
)
pure virtual

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

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

◆ new_endpoint()

virtual bool caf::io::network::datagram_manager::new_endpoint ( receive_buffer buf)
pure virtual

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.

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