public interface TimeIntakeThe naming is deliberately neutral – no "License", no "Clock" – so the purpose of an implementation is not obvious from its type. The rest of the server obtains a TimeIntake through the license interface, never by referencing the clock or aggregator directly: that keeps every trust-bearing decision inside the protected part of the license system while still letting ordinary server code (NTP poller, connecting clients, peer servers, License Managers) contribute readings.
A submission is advisory. Submitting a sample does not move any clock by itself; the engine decides – using each sample's TimeSample.confidence(), TimeSample.accuracyPercent(), TimeSample.precision() and a quorum of agreeing sources – whether and how a reading influences the trusted time. A single low-trust reading (for example one remote client) can legitimately have no effect at all.
Implementations must be safe to call from many threads at once: the NTP poller thread, socket-intake threads, and the licensing thread all submit concurrently.
(C) Copyright 2026 Mindus SARL. All rights reserved.
| Modifier and Type | Method and Description |
|---|---|
void | submit(TimeSample sample)Submits a general time observation. |
void | submitNtp(NtpTimeSample sample)Submits a time observation obtained from an NTP/SNTP query. |
void submit(TimeSample sample)
Used by socket peers – connecting NetPhantom clients, peer (load-balanced) servers, and License Managers. The sample is advisory; see the class notes.
sample - The observed time reading (must not be null).void submitNtp(NtpTimeSample sample)
Carries the richer NTP metadata (stratum, root dispersion, round-trip delay, server precision) so the engine can weight it well. Prefer this over submit(TimeSample) for NTP readings.
sample - The NTP reading (must not be null).Phantom® and NetPhantom® are registered trademarks of Mindus SARL.
© 2026 Mindus SARL. All rights reserved.