Mads
Multi-Agent Distributed System
Loading...
Searching...
No Matches
clock_offset.hpp File Reference
#include <chrono>
#include <cstdint>
#include <deque>
#include <map>
#include <mutex>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  Mads::ClockSample
 One four-timestamp exchange, all fields microseconds since the Unix epoch: t1/t4 read from the initiator's clock, t2/t3 from the responder's. More...
 
struct  Mads::ClockOffsetResult
 Result of a clock-offset measurement: offset_us added to a clock in the measured domain yields broker-host time (broker_host_clock - domain_clock). source/hops/origin_agent_id/seq are Agent-level bookkeeping the estimator does not fill in – only estimate()'s own offset_us/delay_us/samples/valid are computed from the timestamps. More...
 
class  Mads::ClockOffsetEstimator
 Accumulates ClockSamples and returns the classic NTP "best of N": the retained sample with the smallest round-trip delay, i.e. the one least polluted by queuing delay along the path. More...
 
class  Mads::ClockConsensus
 Per-clock-domain adoption of the smallest-delay measurement heard from any agent sharing that domain (ยง2.1 of the design): agents on one host announce their own measurements, and every agent applies this same deterministic rule – so they converge on one offset without an election. More...
 
struct  Mads::HostSkewStat
 Snapshot of one host's passive clock skew, as computed by HostSkewStats::snapshot() at a given instant. More...
 
class  Mads::HostSkewStats
 Thread-safe sliding-window tracker of per-host clock skew, fed by mads top's passive mode: for every received message, record (local_rx_time - payload's own timestamp field), both as epoch microseconds. No protocol at all – works against any existing MADS deployment, since timestamp/hostname are already stamped on every published message by Agent::publish(). More...
 

Namespaces

namespace  Mads
 

Enumerations

enum class  Mads::ClockSource { Mads::None = 0 , Mads::Broker = 1 , Mads::Peer = 2 }
 Which mechanism produced a ClockOffsetResult. More...
 

Functions

ClockOffsetResult Mads::estimate (const ClockSample &s)
 NTP-style estimate from one four-timestamp exchange.