4#ifndef _Stroika_Framework_SystemPerformance_Instruments_Filesystem_h_
5#define _Stroika_Framework_SystemPerformance_Instruments_Filesystem_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
12#include "Stroika/Foundation/Containers/Mapping.h"
13#include "Stroika/Foundation/DataExchange/ObjectVariantMapper.h"
17#include "Stroika/Frameworks/SystemPerformance/Instrument.h"
32namespace Stroika::Frameworks::SystemPerformance::Instruments::Filesystem {
34 using DataExchange::ObjectVariantMapper;
45 optional<double> fBytesTransfered;
46 optional<double> fTotalTransfers;
47 optional<double> fQLength;
48 optional<double> fInUsePercent;
64 using DynamicDiskIDType = filesystem::path;
69 using MountedFilesystemNameType = filesystem::path;
80 optional<String> fPersistenceVolumeID;
85 optional<BlockDeviceKind> fDeviceKind;
90 optional<uint64_t> fSizeInBytes;
99 optional<IOStatsType> fWriteIOStats;
100 optional<IOStatsType> fCombinedIOStats;
119 optional<Set<DynamicDiskIDType>> fOnPhysicalDrive;
127 optional<BlockDeviceKind> fDeviceKind;
156 optional<uint64_t> fSizeInBytes;
166 optional<uint64_t> fUsedSizeInBytes;
173 optional<IOStatsType> fWriteIOStats;
174 optional<IOStatsType> fCombinedIOStats;
223 bool fDiskspaceUsage{
true};
227 bool fIOStatistics{
true};
267namespace Stroika::Frameworks::SystemPerformance {
chrono::duration< double > DurationSeconds
chrono::duration<double> - a time span (length of time) measured in seconds, but high precision.
String is like std::u32string, except it is much easier to use, often much more space efficient,...
ObjectVariantMapper can be used to map C++ types to and from variant-union types, which can be transp...