use crate::{
handler::ServerHandler,
security_provider::SecurityProvider,
server::{ServerError, UdsServer},
MAX_FRAME, MAX_OUTBOX,
};
use ace_sim::node::SimNode;
impl<H, S> SimNode<MAX_FRAME, MAX_OUTBOX> for UdsServer<H, S>
where
H: ServerHandler,
S: SecurityProvider,
{
type Error = ServerError<H::Error>;
fn address(&self) -> &ace_sim::io::NodeAddress {
UdsServer::address(self)
}
fn handle(
&mut self,
src: &ace_sim::io::NodeAddress,
data: &[u8],
now: ace_sim::clock::Instant,
) -> Result<(), Self::Error> {
UdsServer::handle(self, src, data, now)
}
fn tick(&mut self, now: ace_sim::clock::Instant) -> Result<(), Self::Error> {
UdsServer::tick(self, now)
}
fn drain_outbox(
&mut self,
out: &mut heapless::Vec<
(ace_sim::io::NodeAddress, heapless::Vec<u8, MAX_FRAME>),
MAX_OUTBOX,
>,
) -> usize {
UdsServer::drain_outbox(self, out)
}
}