BareGit
#pragma once

#include "probe.h"

namespace probe_internal
{

/// Check a TCP endpoint before the shared monotonic deadline.
mw::E<ProbeStatus> probeSocket(const TcpEndpoint& endpoint,
                              std::chrono::steady_clock::time_point deadline);
/// Check a UDP endpoint before the shared monotonic deadline.
mw::E<ProbeStatus> probeSocket(const UdpEndpoint& endpoint,
                              std::chrono::steady_clock::time_point deadline);
/// Check an ICMP endpoint before the shared monotonic deadline.
mw::E<ProbeStatus> probeSocket(const IcmpEndpoint& endpoint,
                              std::chrono::steady_clock::time_point deadline);

}