DUDS
Distributed Update of Data from Something
duds::hardware::devices::clocks Namespace Reference

The place for clock drivers; a way to use time keeping devices. More...

Classes

struct  ClockError
 The base type for errors from clocks. More...
 
class  GenericClock
 The foundation to a clock driver. More...
 
class  GenericCppClock
 The clock driver for C++ clocks that meet the requirements of the TrivialClock concept. More...
 
class  GenericLinuxClock
 Uses the Linux specific adjtimex() function to query for the time and the quailty of the time sample. More...
 
class  GenericPosixClock
 A clock driver to use clocks through the POSIX interface. More...
 
struct  PosixClockUnsupported
 An attempt was made to use a POSIX clock that is not supported by the system. More...
 

Typedefs

typedef GenericClock< duds::data::GenericValue, double, duds::time::interstellar::NanoTime, float > Clock
 General use clock driver type. More...
 
typedef std::shared_ptr< ClockClockSptr
 
typedef GenericCppClock< duds::time::interstellar::NanoClock, duds::data::GenericValue, double, duds::time::interstellar::NanoTime, float > CppClock
 General use C++ clock driver type. More...
 
typedef std::shared_ptr< CppClockCppClockSptr
 
typedef duds::data::GenericSample< duds::time::interstellar::FemtoTime, double > FemtoTimeSample
 A time sample fit for applications requiring very long-term time samples, or time samples with high resolution. More...
 
typedef GenericLinuxClock< duds::data::GenericValue, double, duds::time::interstellar::NanoTime, float > LinuxClock
 General use Linux clock driver type. More...
 
typedef std::shared_ptr< LinuxClockLinuxClockSptr
 
typedef duds::data::GenericSample< duds::time::interstellar::NanoTime, float > NanoTimeSample
 A compact time sample that works well for most purposes. More...
 
typedef GenericPosixClock< duds::data::GenericValue, double, duds::time::interstellar::NanoTime, float > PosixClock
 General use POSIX clock driver type. More...
 
typedef boost::error_info< struct Info_posixclockid, clockid_t > PosixClockId
 Indicates the POSIX clockid_t in an error involving a POSIX clock. More...
 
typedef std::shared_ptr< PosixClockPosixClockSptr
 
typedef NanoTimeSample TimeSample
 The regular time sample is currently NanoTimeSample for practicality. More...
 

Variables

constexpr boost::uuids::uuid CppClockDeviceId
 The UUID for the C++ clock device. More...
 
constexpr boost::uuids::uuid LinuxClockDeviceId
 The UUID for the Linux clock device. More...
 
constexpr boost::uuids::uuid PosixClockDeviceId
 The UUID for the POSIX clock device. More...
 

Detailed Description

The place for clock drivers; a way to use time keeping devices.

Usually there is a way to query the operating system for the time, so many classes will not require hardware support.

Typedef Documentation

◆ Clock

General use clock driver type.

Definition at line 261 of file Clock.hpp.

◆ ClockSptr

Definition at line 263 of file Clock.hpp.

◆ CppClock

◆ CppClockSptr

Definition at line 135 of file CppClock.hpp.

◆ FemtoTimeSample

A time sample fit for applications requiring very long-term time samples, or time samples with high resolution.

FemtoTime should be able to hold any point in time from the begining of the universe until the last star goes dark. Doubles for the quality data should be able to represent the best clocks for at least a few centuries and possibly much longer.

Definition at line 47 of file Clock.hpp.

◆ LinuxClock

General use Linux clock driver type.

Definition at line 202 of file LinuxClock.hpp.

◆ LinuxClockSptr

Definition at line 204 of file LinuxClock.hpp.

◆ NanoTimeSample

A compact time sample that works well for most purposes.

NanoTime is used to minimize memory use. Floats for the quality type complements this, while providing adequate range to properly represent the best atomic clocks.

Definition at line 36 of file Clock.hpp.

◆ PosixClock

General use POSIX clock driver type.

Definition at line 250 of file PosixClock.hpp.

◆ PosixClockId

typedef boost::error_info<struct Info_posixclockid, clockid_t> duds::hardware::devices::clocks::PosixClockId

Indicates the POSIX clockid_t in an error involving a POSIX clock.

Definition at line 37 of file PosixClock.hpp.

◆ PosixClockSptr

Definition at line 252 of file PosixClock.hpp.

◆ TimeSample

The regular time sample is currently NanoTimeSample for practicality.

Definition at line 52 of file Clock.hpp.

Variable Documentation

◆ CppClockDeviceId

constexpr boost::uuids::uuid duds::hardware::devices::clocks::CppClockDeviceId
Initial value:
= {
0x7f, 0x3a, 0x9f, 0x9a,
0x82, 0x59,
0x43, 0xde,
0x97, 0xac,
0xd2, 0xea, 0x2a, 0x48, 0x51, 0xb2
}

The UUID for the C++ clock device.

Definition at line 20 of file CppClock.hpp.

◆ LinuxClockDeviceId

constexpr boost::uuids::uuid duds::hardware::devices::clocks::LinuxClockDeviceId
Initial value:
= {
0xbf, 0x2d, 0x4a, 0x68,
0x62, 0xda,
0x45, 0x56,
0x8c, 0xc6,
0x38, 0xd1, 0xd5, 0x5b, 0x20, 0x74
}

The UUID for the Linux clock device.

Definition at line 25 of file LinuxClock.hpp.

◆ PosixClockDeviceId

constexpr boost::uuids::uuid duds::hardware::devices::clocks::PosixClockDeviceId
Initial value:
= {
0x41, 0xba, 0xe3, 0x09,
0xc2, 0xe9,
0x4c, 0x02,
0xb4, 0xd5,
0x5b, 0x24, 0xc3, 0x99, 0xc7, 0xeb
}

The UUID for the POSIX clock device.

Definition at line 42 of file PosixClock.hpp.