pub struct TLSTServer<PRC, RTF, IPF, WTF, OPF>where
PRC: TProcessor + Send + Sync + 'static,
RTF: TReadTransportFactory + 'static,
IPF: TInputProtocolFactory + 'static,
WTF: TWriteTransportFactory + 'static,
OPF: TOutputProtocolFactory + 'static,{ /* private fields */ }Expand description
Fixed-size thread-pool blocking Thrift server.
A TLSTServer listens on a given address and submits accepted connections
to an unbounded queue. Connections from this queue are serviced by
the first available worker thread from a fixed-size thread pool. Each
accepted connection is handled by that worker thread, and communication
over this thread occurs sequentially and synchronously (i.e. calls block).
Accepted connections have an input half and an output half, each of which
uses a TTransport and TInputProtocol/TOutputProtocol to translate
messages to and from byes. Any combination of TInputProtocol, TOutputProtocol
and TTransport may be used.
Implementations§
Source§impl<PRC, RTF, IPF, WTF, OPF> TLSTServer<PRC, RTF, IPF, WTF, OPF>where
PRC: TProcessor + Send + Sync + 'static,
RTF: TReadTransportFactory + 'static,
IPF: TInputProtocolFactory + 'static,
WTF: TWriteTransportFactory + 'static,
OPF: TOutputProtocolFactory + 'static,
impl<PRC, RTF, IPF, WTF, OPF> TLSTServer<PRC, RTF, IPF, WTF, OPF>where
PRC: TProcessor + Send + Sync + 'static,
RTF: TReadTransportFactory + 'static,
IPF: TInputProtocolFactory + 'static,
WTF: TWriteTransportFactory + 'static,
OPF: TOutputProtocolFactory + 'static,
Sourcepub fn new(
read_transport_factory: RTF,
input_protocol_factory: IPF,
write_transport_factory: WTF,
output_protocol_factory: OPF,
processor: PRC,
num_workers: usize,
key_pair: X509Credentials,
root_cert_store: Option<RootCertStore>,
require_client_auth: bool,
connection_hook: Option<fn(TLSStream<ServerSession>)>,
) -> TLSTServer<PRC, RTF, IPF, WTF, OPF>
pub fn new( read_transport_factory: RTF, input_protocol_factory: IPF, write_transport_factory: WTF, output_protocol_factory: OPF, processor: PRC, num_workers: usize, key_pair: X509Credentials, root_cert_store: Option<RootCertStore>, require_client_auth: bool, connection_hook: Option<fn(TLSStream<ServerSession>)>, ) -> TLSTServer<PRC, RTF, IPF, WTF, OPF>
Create a TLSTServer.
Each accepted connection has an input and output half, each of which
requires a TTransport and TProtocol. TLSTServer uses
read_transport_factory and input_protocol_factory to create
implementations for the input, and write_transport_factory and
output_protocol_factory to create implementations for the output.
root_cert_store contains the trust anchors. If None, the default
(embedded) will be used
require_client_auth is true if client authentication is enforced.
connection_hook is an optional callback function that is executed
right after a new connection is established and typically before
TLS handshake is performed.
Sourcepub fn listen(&mut self, listen_address: &str) -> Result<()>
pub fn listen(&mut self, listen_address: &str) -> Result<()>
Listen for incoming connections on listen_address.
listen_address should be in the form host:port,
for example: 127.0.0.1:8080.
Return () if successful.
Return Err when the server cannot bind to listen_address or there
is an unrecoverable error.