Seastar
High performance C++ framework for concurrent servers
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
seastar::rpc::server::connection Class Reference
Inheritance diagram for seastar::rpc::server::connection:
seastar::rpc::connection seastar::enable_shared_from_this< connection >

Public Member Functions

 connection (server &s, connected_socket &&fd, socket_address &&addr, const logger &l, void *seralizer, connection_id id)
 
future process ()
 
future respond (int64_t msg_id, snd_buf &&data, std::optional< rpc_clock_type::time_point > timeout)
 
client_infoinfo ()
 
const client_infoinfo () const
 
stats get_stats () const
 
statsget_stats_internal ()
 
socket_address peer_address () const override
 
future< resource_permitwait_for_resources (size_t memory_consumed, std::optional< rpc_clock_type::time_point > timeout)
 
size_t estimate_request_size (size_t serialized_size)
 
size_t max_request_size () const
 
serverget_server ()
 
future deregister_this_stream ()
 
void set_socket (connected_socket &&fd)
 
future send_negotiation_frame (feature_map features)
 
future send (snd_buf buf, std::optional< rpc_clock_type::time_point > timeout={}, cancellable *cancel=nullptr)
 
bool error ()
 
void abort ()
 
future stop ()
 
future stream_receive (circular_buffer< foreign_ptr< std::unique_ptr< rcv_buf >>> &bufs)
 
future close_sink ()
 
bool sink_closed ()
 
future close_source ()
 
connection_id get_connection_id () const
 
xshard_connection_ptr get_stream (connection_id id) const
 
void register_stream (connection_id id, xshard_connection_ptr c)
 
const loggerget_logger () const
 
template<typename Serializer >
Serializer & serializer ()
 
template<typename FrameType >
FrameType::return_type read_frame (socket_address info, input_stream< char > &in)
 
template<typename FrameType >
FrameType::return_type read_frame_compressed (socket_address info, std::unique_ptr< compressor > &compressor, input_stream< char > &in)
 
shared_ptr< connectionshared_from_this ()
 
shared_ptr< const connectionshared_from_this () const
 
long use_count () const noexcept
 

Protected Types

enum  outgoing_queue_type { request, response, stream = response }
 

Protected Member Functions

bool is_stream ()
 
snd_buf compress (snd_buf buf)
 
future send_buffer (snd_buf buf)
 
future stop_send_loop ()
 
future< std::optional< rcv_buf > > read_stream_frame_compressed (input_stream< char > &in)
 
bool stream_check_twoway_closed ()
 
future stream_close ()
 
future stream_process_incoming (rcv_buf &&)
 
future handle_stream_frame ()
 

Protected Attributes

connected_socket _fd
 
input_stream< char > _read_buf
 
output_stream< char > _write_buf
 
bool _error = false
 
bool _connected = false
 
promise _stopped
 
stats _stats
 
const logger_logger
 
void * _serializer
 
friend outgoing_entry
 
std::list< outgoing_entry_outgoing_queue
 
condition_variable _outgoing_queue_cond
 
future _send_loop_stopped = make_ready_future<>()
 
std::unique_ptr< compressor_compressor
 
bool _timeout_negotiated = false
 
bool _is_stream = false
 
connection_id _id = invalid_connection_id
 
std::unordered_map< connection_id, xshard_connection_ptr_streams
 
queue< rcv_buf_stream_queue = queue<rcv_buf>(max_queued_stream_buffers)
 
semaphore _stream_sem = semaphore(max_stream_buffers_memory)
 
bool _sink_closed = true
 
bool _source_closed = true
 
future< bool > _sink_closed_future = make_ready_future<bool>(false)
 

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