Time Shield Library
C++ library for working with time
Toggle main menu visibility
Loading...
Searching...
No Matches
udp_transport.hpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
#pragma once
3
#ifndef TIME_SHIELD_HEADER_TIME_SHIELD_NTP_CLIENT_UDP_TRANSPORT_HPP_INCLUDED
4
#define TIME_SHIELD_HEADER_TIME_SHIELD_NTP_CLIENT_UDP_TRANSPORT_HPP_INCLUDED
5
6
#include <cstddef>
7
#include <string>
8
9
namespace
time_shield
{
10
namespace
detail
{
11
13
struct
UdpRequest
{
14
std::string
host
;
15
int
port
= 123;
16
const
void
*
send_data
=
nullptr
;
17
std::size_t
send_size
= 0;
18
void
*
recv_data
=
nullptr
;
19
std::size_t
recv_size
= 0;
20
int
timeout_ms
= 5000;
21
};
22
24
class
IUdpTransport
{
25
public
:
27
virtual
~IUdpTransport
() {}
29
virtual
bool
transact
(
const
UdpRequest
& req,
int
& out_error_code)
noexcept
= 0;
30
};
31
32
}
// namespace detail
33
}
// namespace time_shield
34
35
#endif
// TIME_SHIELD_HEADER_TIME_SHIELD_NTP_CLIENT_UDP_TRANSPORT_HPP_INCLUDED
time_shield::detail::IUdpTransport
Abstract UDP transport interface for NTP queries.
Definition
udp_transport.hpp:24
time_shield::detail::IUdpTransport::~IUdpTransport
virtual ~IUdpTransport()
Virtual destructor.
Definition
udp_transport.hpp:27
time_shield::detail::IUdpTransport::transact
virtual bool transact(const UdpRequest &req, int &out_error_code) noexcept=0
Send request and receive response over UDP.
time_shield::detail
Definition
fast_date.hpp:14
time_shield
Main namespace for the Time Shield library.
time_shield::detail::UdpRequest
UDP request parameters for NTP transactions.
Definition
udp_transport.hpp:13
time_shield::detail::UdpRequest::send_size
std::size_t send_size
Outgoing payload size in bytes.
Definition
udp_transport.hpp:17
time_shield::detail::UdpRequest::timeout_ms
int timeout_ms
Receive timeout in milliseconds.
Definition
udp_transport.hpp:20
time_shield::detail::UdpRequest::host
std::string host
Target host name or IP address.
Definition
udp_transport.hpp:14
time_shield::detail::UdpRequest::recv_size
std::size_t recv_size
Receive buffer size in bytes.
Definition
udp_transport.hpp:19
time_shield::detail::UdpRequest::port
int port
Target port.
Definition
udp_transport.hpp:15
time_shield::detail::UdpRequest::send_data
const void * send_data
Pointer to outgoing payload.
Definition
udp_transport.hpp:16
time_shield::detail::UdpRequest::recv_data
void * recv_data
Pointer to receive buffer.
Definition
udp_transport.hpp:18
include
time_shield
ntp_client
udp_transport.hpp
Generated by
1.17.0