[][src]Struct sntp::Client

pub struct Client { /* fields omitted */ }

SNTPv4 client.

You must call Client::poll() after Interface::poll() to send and receive SNTP packets.

Implementations

impl Client[src]

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
) -> Self where
    'b: 'c, 
[src]

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),
);

pub fn next_poll(&self, now: Instant) -> Duration[src]

Returns the duration until the next packet request.

Useful for suspending execution after polling.

pub fn poll(
    &mut self,
    sockets: &mut SocketSet,
    now: Instant
) -> Result<Option<u32>>
[src]

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 Send for Client

impl Sync for Client

impl Unpin for Client

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.