Go to the documentation of this file. 1 #ifndef EAGINE_SYSTEM_INFO_HPP
9 #define EAGINE_SYSTEM_INFO_HPP
11 #include "config/basic.hpp"
28 class system_info_impl;
50 auto
uptime() noexcept -> std::chrono::duration<
float>;
54 return {
span_size(std::thread::hardware_concurrency())};
108 std::shared_ptr<system_info_impl> _pimpl;
109 auto _impl() noexcept -> system_info_impl*;
114 #if !EAGINE_LINK_LIBRARY || defined(EAGINE_IMPLEMENTING_LIBRARY)
115 #include <eagine/system_info.inl>
118 #endif // EAGINE_SYSTEM_INFO_HPP
Helper class used to initialize main context objects.
Definition: main_ctx_object.hpp:45
auto total_ram_size() noexcept -> valid_if_positive< span_size_t >
Returns total RAM size.
auto current_processes() noexcept -> valid_if_positive< span_size_t >
Returns the number of running processes.
std::ptrdiff_t span_size_t
Signed span size type used by eagine.
Definition: types.hpp:36
valid_if< T, valid_if_positive_policy< T > > valid_if_positive
Specialization of valid_if, for values valid if positive.
Definition: positive.hpp:44
#define EAGINE_ID(NAME)
Macro for constructing instances of eagine::identifier.
Definition: identifier.hpp:353
static constexpr auto span_size(T v) noexcept
Converts argument to span size type.
Definition: types.hpp:59
Base class for main context objects.
Definition: main_ctx_object.hpp:71
Common code is placed in this namespace.
Definition: eagine.hpp:21
std::uint32_t host_id_type
Alias for host id type.
Definition: system_info.hpp:35
auto short_average_load() noexcept -> valid_if_nonnegative< float >
Returns the short-term average system load in range (0.0, 1.0).
auto preinitialize() noexcept -> system_info &
Do potentially expensive pre-initialization and caching.
Primary template for conditionally valid values.
Definition: decl.hpp:49
auto cpu_temperature() noexcept -> valid_if_positive< kelvins_t< float >>
Returns the temperature on the CPU thermal sensor if present.
auto free_ram_size() noexcept -> valid_if_positive< span_size_t >
Returns free RAM size.
auto cooling_device_state(span_size_t) noexcept -> valid_if_between_0_1< float >
Returns the state of the i-th cooling device.
auto host_id() noexcept -> valid_if_positive< host_id_type >
Returns a unique numeric id of this host computer.
auto long_average_load() noexcept -> valid_if_nonnegative< float >
Returns the long-term average system load in range (0.0, 1.0).
auto sensor_temperature(span_size_t) noexcept -> valid_if_positive< kelvins_t< float >>
Returns the temperature on the i-th thermal sensor.
auto battery_count() noexcept -> span_size_t
Returns the count of batteries in the system.
auto cooling_device_count() noexcept -> span_size_t
Returns the number of cooling devices.
valid_if< T, valid_if_not_empty_policy< T > > valid_if_not_empty
Specialization of valid_if, for values valid if not empty.
Definition: not_empty.hpp:42
auto memory_page_size() noexcept -> valid_if_positive< span_size_t >
Returns the memory page size on this system.
auto battery_capacity(span_size_t) noexcept -> valid_if_between_0_1< float >
Returns the capacity of the i-th battery.
Class providing basic system information.
Definition: system_info.hpp:32
auto gpu_temperature() noexcept -> valid_if_positive< kelvins_t< float >>
Returns the temperature on the GPU thermal sensor if present.
auto cpu_concurrent_threads() noexcept -> valid_if_positive< span_size_t >
Returns the number of threads that can run concurrently.
Definition: system_info.hpp:53
auto hostname() noexcept -> valid_if_not_empty< std::string >
Returns the hostname.
auto thermal_sensor_count() noexcept -> span_size_t
Returns the number of system thermal sensors.
auto free_swap_size() noexcept -> valid_if_nonnegative< span_size_t >
Returns free swap size.
auto uptime() noexcept -> std::chrono::duration< float >
Returns the system uptime.
Value of type T with a specified unit or tag type U.
Definition: tagged_quantity.hpp:27
auto total_swap_size() noexcept -> valid_if_nonnegative< span_size_t >
Returns total swap size.