blob: 47728aa193cc67558a3c30cca63ba0a9a1c5f1f8 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.time;
using zx;
/// Metadata about a device's approximation of UTC time, commonly referred to as "system time."
[Discoverable]
protocol Utc {
/// Notifies clients of updates to the UTC timeline. The first call on a channel returns
/// immediately, and subsequent calls on the same channel will return when the state
/// has changed.
WatchState() -> (UtcState state);
};
/// Describes the state of the clock.
table UtcState {
/// The monotonic time at which this `UtcState` was observed.
1: zx.time timestamp;
/// The source of our current UTC approximation.
2: UtcSource source;
};
/// Describes the source from which the current UTC approximation was retrieved.
enum UtcSource {
/// The clock has been initialized to a known-prior reference time but may be highly inaccurate.
BACKSTOP = 2;
/// The clock has been initialized from a suitably accurate external time source. For many
/// devices the most common external time source is a network time server.
EXTERNAL = 3;
};