pub struct ClientSession { /* private fields */ }Expand description
Represents an active client session
Implementations§
Source§impl ClientSession
impl ClientSession
Source§impl ClientSession
impl ClientSession
Source§impl ClientSession
impl ClientSession
Sourcepub fn new(
client_addr: SocketAddr,
buffer_pool: BufferPool,
auth_handler: Arc<AuthHandler>,
) -> Self
pub fn new( client_addr: SocketAddr, buffer_pool: BufferPool, auth_handler: Arc<AuthHandler>, ) -> Self
Create a new client session for 1:1 backend mapping
Sourcepub fn new_with_router(
client_addr: SocketAddr,
buffer_pool: BufferPool,
router: Arc<BackendSelector>,
routing_mode: RoutingMode,
auth_handler: Arc<AuthHandler>,
) -> Self
pub fn new_with_router( client_addr: SocketAddr, buffer_pool: BufferPool, router: Arc<BackendSelector>, routing_mode: RoutingMode, auth_handler: Arc<AuthHandler>, ) -> Self
Create a new client session for per-command routing mode
Sourcepub fn builder(
client_addr: SocketAddr,
buffer_pool: BufferPool,
auth_handler: Arc<AuthHandler>,
) -> ClientSessionBuilder
pub fn builder( client_addr: SocketAddr, buffer_pool: BufferPool, auth_handler: Arc<AuthHandler>, ) -> ClientSessionBuilder
Create a builder for constructing a client session
§Examples
use std::net::SocketAddr;
use std::sync::Arc;
use nntp_proxy::session::ClientSession;
use nntp_proxy::pool::BufferPool;
use nntp_proxy::types::BufferSize;
use nntp_proxy::auth::AuthHandler;
let addr: SocketAddr = "127.0.0.1:8080".parse().unwrap();
let buffer_pool = BufferPool::new(BufferSize::DEFAULT, 10);
let auth_handler = Arc::new(AuthHandler::new(None, None));
// Standard 1:1 routing mode
let session = ClientSession::builder(addr, buffer_pool.clone(), auth_handler)
.build();
assert!(!session.is_per_command_routing());Sourcepub fn is_per_command_routing(&self) -> bool
pub fn is_per_command_routing(&self) -> bool
Check if this session is using per-command routing
Sourcepub fn mode(&self) -> SessionMode
pub fn mode(&self) -> SessionMode
Get the current session mode
Auto Trait Implementations§
impl !Freeze for ClientSession
impl !RefUnwindSafe for ClientSession
impl Send for ClientSession
impl Sync for ClientSession
impl Unpin for ClientSession
impl !UnwindSafe for ClientSession
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more