Skip to main content

TLSTServer

Struct TLSTServer 

Source
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,

Source

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.

Source

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.

Auto Trait Implementations§

§

impl<PRC, RTF, IPF, WTF, OPF> !RefUnwindSafe for TLSTServer<PRC, RTF, IPF, WTF, OPF>

§

impl<PRC, RTF, IPF, WTF, OPF> !UnwindSafe for TLSTServer<PRC, RTF, IPF, WTF, OPF>

§

impl<PRC, RTF, IPF, WTF, OPF> Freeze for TLSTServer<PRC, RTF, IPF, WTF, OPF>
where RTF: Freeze, IPF: Freeze, WTF: Freeze, OPF: Freeze,

§

impl<PRC, RTF, IPF, WTF, OPF> Send for TLSTServer<PRC, RTF, IPF, WTF, OPF>
where RTF: Send, IPF: Send, WTF: Send, OPF: Send,

§

impl<PRC, RTF, IPF, WTF, OPF> Sync for TLSTServer<PRC, RTF, IPF, WTF, OPF>
where RTF: Sync, IPF: Sync, WTF: Sync, OPF: Sync,

§

impl<PRC, RTF, IPF, WTF, OPF> Unpin for TLSTServer<PRC, RTF, IPF, WTF, OPF>
where RTF: Unpin, IPF: Unpin, WTF: Unpin, OPF: Unpin,

§

impl<PRC, RTF, IPF, WTF, OPF> UnsafeUnpin for TLSTServer<PRC, RTF, IPF, WTF, OPF>
where RTF: UnsafeUnpin, IPF: UnsafeUnpin, WTF: UnsafeUnpin, OPF: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.