File indexing completed on 2024-05-05 05:34:26

0001 /*
0002     SPDX-FileCopyrightText: 2019 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 // Qt
0010 #include <QMetaType>
0011 
0012 #include "formatter_export.h"
0013 
0014 namespace KSysGuard
0015 {
0016 FORMATTER_EXPORT Q_NAMESPACE
0017 
0018     /**
0019      * This enum type is used to specify metric prefixes.
0020      */
0021     enum MetricPrefix {
0022         MetricPrefixAutoAdjust = -1,
0023         MetricPrefixUnity = 0,
0024         MetricPrefixKilo,
0025         MetricPrefixMega,
0026         MetricPrefixGiga,
0027         MetricPrefixTera,
0028         MetricPrefixPeta,
0029         MetricPrefixLast = MetricPrefixPeta
0030     };
0031 Q_ENUM_NS(MetricPrefix)
0032 
0033 /**
0034  * This enum types is used to specify units.
0035  */
0036 enum Unit {
0037     UnitInvalid = -1,
0038     UnitNone = 0,
0039 
0040     // Byte size units.
0041     UnitByte = 100,
0042     UnitKiloByte = MetricPrefixKilo + UnitByte,
0043     UnitMegaByte = MetricPrefixMega + UnitByte,
0044     UnitGigaByte = MetricPrefixGiga + UnitByte,
0045     UnitTeraByte = MetricPrefixTera + UnitByte,
0046     UnitPetaByte = MetricPrefixPeta + UnitByte,
0047 
0048     // Data rate units.
0049     UnitByteRate = 200,
0050     UnitKiloByteRate = MetricPrefixKilo + UnitByteRate,
0051     UnitMegaByteRate = MetricPrefixMega + UnitByteRate,
0052     UnitGigaByteRate = MetricPrefixGiga + UnitByteRate,
0053     UnitTeraByteRate = MetricPrefixTera + UnitByteRate,
0054     UnitPetaByteRate = MetricPrefixPeta + UnitByteRate,
0055 
0056     // Frequency.
0057     UnitHertz = 300,
0058     UnitKiloHertz = MetricPrefixKilo + UnitHertz,
0059     UnitMegaHertz = MetricPrefixMega + UnitHertz,
0060     UnitGigaHertz = MetricPrefixGiga + UnitHertz,
0061     UnitTeraHertz = MetricPrefixTera + UnitHertz,
0062     UnitPetaHertz = MetricPrefixPeta + UnitHertz,
0063 
0064     // Time units.
0065     UnitBootTimestamp = 400,
0066     UnitSecond,
0067     UnitTime,
0068     UnitTicks,
0069     UnitDuration,
0070 
0071     // Data rate units in bits.
0072     UnitBitRate = 500,
0073     UnitKiloBitRate = MetricPrefixKilo + UnitBitRate,
0074     UnitMegaBitRate = MetricPrefixMega + UnitBitRate,
0075     UnitGigaBitRate = MetricPrefixGiga + UnitBitRate,
0076     UnitTeraBitRate = MetricPrefixTera + UnitBitRate,
0077     UnitPetaBitRate = MetricPrefixPeta + UnitBitRate,
0078 
0079     // Volt.
0080     UnitVolt = 600,
0081     UnitKiloVolt = MetricPrefixKilo + UnitVolt,
0082     UnitMegaVolt = MetricPrefixMega + UnitVolt,
0083     UnitGigaVolt = MetricPrefixGiga + UnitVolt,
0084     UnitTeraVolt = MetricPrefixTera + UnitVolt,
0085     UnitPetaVolt = MetricPrefixPeta + UnitVolt,
0086 
0087     // Watt.
0088     UnitWatt = 700,
0089     UnitKiloWatt = MetricPrefixKilo + UnitWatt,
0090     UnitMegaWatt = MetricPrefixMega + UnitWatt,
0091     UnitGigaWatt = MetricPrefixGiga + UnitWatt,
0092     UnitTeraWatt = MetricPrefixTera + UnitWatt,
0093     UnitPetaWatt = MetricPrefixPeta + UnitWatt,
0094 
0095     // WattHour.
0096     UnitWattHour = 800,
0097     UnitKiloWattHour = MetricPrefixKilo + UnitWattHour,
0098     UnitMegaWattHour = MetricPrefixMega + UnitWattHour,
0099     UnitGigaWattHour = MetricPrefixGiga + UnitWattHour,
0100     UnitTeraWattHour = MetricPrefixTera + UnitWattHour,
0101     UnitPetaWattHour = MetricPrefixPeta + UnitWattHour,
0102 
0103     // Ampere.
0104     UnitAmpere = 900,
0105     UnitKiloAmpere = MetricPrefixKilo + UnitAmpere,
0106     UnitMegaAmpere = MetricPrefixMega + UnitAmpere,
0107     UnitGigaAmpere = MetricPrefixGiga + UnitAmpere,
0108     UnitTeraAmpere = MetricPrefixTera + UnitAmpere,
0109     UnitPetaAmpere = MetricPrefixPeta + UnitAmpere,
0110 
0111     // Misc units.
0112     UnitCelsius = 1000,
0113     UnitDecibelMilliWatts,
0114     UnitPercent,
0115     UnitRate,
0116     UnitRpm,
0117 };
0118 Q_ENUM_NS(Unit)
0119 
0120 } // namespace KSysGuard