pub struct Client { /* private fields */ }
Expand description
SNTPv4 client.
You must call Client::poll()
after Interface::poll()
to send
and receive SNTP packets.
Implementations§
Source§impl Client
impl Client
Sourcepub fn new<'a, 'b, 'c>(
sockets: &mut SocketSet<'a, 'b, 'c>,
rx_buffer: UdpSocketBuffer<'b, 'c>,
tx_buffer: UdpSocketBuffer<'b, 'c>,
ntp_server: IpAddress,
now: Instant,
) -> Selfwhere
'b: 'c,
pub fn new<'a, 'b, 'c>(
sockets: &mut SocketSet<'a, 'b, 'c>,
rx_buffer: UdpSocketBuffer<'b, 'c>,
tx_buffer: UdpSocketBuffer<'b, 'c>,
ntp_server: IpAddress,
now: Instant,
) -> Selfwhere
'b: 'c,
Create a new SNTPv4 client performing requests to the specified server.
§Usage
use sntp::Client;
use sntp::net::socket::{SocketSet, UdpSocketBuffer, UdpPacketMetadata};
use sntp::net::time::Instant;
use sntp::net::wire::IpAddress;
let mut sockets_entries: [_; 1] = Default::default();
let mut sockets = SocketSet::new(&mut sockets_entries[..]);
let mut sntp_rx_storage: [u8; 128] = [0; 128];
let mut sntp_rx_metadata: [_; 1] = [UdpPacketMetadata::EMPTY; 1];
let mut sntp_tx_storage: [u8; 128] = [0; 128];
let mut sntp_tx_metadata: [_; 1] = [UdpPacketMetadata::EMPTY; 1];
let sntp_rx_buffer = UdpSocketBuffer::new(
&mut sntp_rx_metadata[..],
&mut sntp_rx_storage[..]
);
let sntp_tx_buffer = UdpSocketBuffer::new(
&mut sntp_tx_metadata[..],
&mut sntp_tx_storage[..],
);
let mut sntp = Client::new(
&mut sockets,
sntp_rx_buffer, sntp_tx_buffer,
IpAddress::v4(62, 112, 134, 4),
Instant::from_secs(0),
);
Sourcepub fn next_poll(&self, now: Instant) -> Duration
pub fn next_poll(&self, now: Instant) -> Duration
Returns the duration until the next packet request.
Useful for suspending execution after polling.
Sourcepub fn poll(
&mut self,
sockets: &mut SocketSet<'_, '_, '_>,
now: Instant,
) -> Result<Option<u32>>
pub fn poll( &mut self, sockets: &mut SocketSet<'_, '_, '_>, now: Instant, ) -> Result<Option<u32>>
Processes incoming packets, and sends SNTP requests when timeouts expire.
If a valid response is received, the Unix timestamp (ie. seconds since epoch) corresponding to the received NTP timestamp is returned.
Auto Trait Implementations§
impl Freeze for Client
impl RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnwindSafe for Client
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