use embassy_net::Stack;
use crate::connection::socket_state::SocketState;
use crate::tcp_server::callback::TcpServerCallBack;
use crate::tcp_server::runner::TcpServerRunner;
pub mod callback;
pub mod runner;
pub struct TcpServer<'d, const N: usize, const TX_SZ: usize, const RX_SZ: usize, const BUF_SIZE: usize, CB: TcpServerCallBack> {
runner: TcpServerRunner<'d, N, TX_SZ, RX_SZ, BUF_SIZE, CB>,
}
impl<'d, const N: usize, const TX_SZ: usize, const RX_SZ: usize, const BUF_SIZE: usize, CB: TcpServerCallBack>
TcpServer<'d, N, TX_SZ, RX_SZ, BUF_SIZE, CB> {
#[inline]
pub fn new(stack: Stack<'d>, state: &'d SocketState<N, TX_SZ, RX_SZ, BUF_SIZE>, port: u16, cb: &'d CB) -> Self {
Self { runner: TcpServerRunner::new(stack, state, port, cb) }
}
#[inline]
pub fn create(&self) -> TcpServerRunner<'d, N, TX_SZ, RX_SZ, BUF_SIZE, CB> {
self.runner
}
}