1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16
17 package xdc.runtime;
18
19 /*!
20 * ======== ITimestampProvider ========
21 * Timestamp provider interface
22 *
23 * This interface is implemented by platform-specific modules that
24 * "provide" underlying timestamp services for the
25 * `{@link xdc.runtime.Timestamp}` module.
26 *
27 * Only the `{@link xdc.runtime.Timestamp}` module and the
28 * `{@link xdc.runtime.ITimestampClient}` interface should be directly
29 * referenced by platform-independent applications.
30 *
31 * This interface is part of a design pattern that includes the
32 * `ITimestampClient` interface and the `Timestamp` module. This pattern
33 * allows client code to:
34 * @p(blist)
35 * - use the platform-independent interfaces provided by either
36 * `ITimestampClient` and `Timestamp` and remain 100% portable
37 * - optionally leverage platform-specific capabilities
38 * of any module that implements `ITimestampProvider` and still always
39 * have access to the platform-independent methods specified by
40 * `ITimestampClient` (because `ITimestampProvider` inherits from
41 * `ITimestampClient`)
42 * @p
43 * This pattern is in contrast to other "provider" interfaces that exist only
44 * to specify the methods necessary to enable "higher-level" modules; client
45 * code *never* accesses these provider interfaces directly, clients always
46 * only use the higher-level modules.
47 */
48 interface ITimestampProvider inherits ITimestampClient {
49 }
50 51 52
53