Files
MacMonitor/Sources/Telemetry/CPU/MMCPULoadProvider.h
gronod cb625964a5
MacMonitor CI/CD Pipeline / Build & Test (Intel x86_64) (push) Canceled after 0s
feat(cpu): implement MMCPULoadProvider with per-core tick deltas, frequency, and throttling (Issue #5)
2026-09-08 12:18:30 +01:00

32 lines
959 B
Objective-C

#ifndef MMCPULoadProvider_h
#define MMCPULoadProvider_h
#import <Foundation/Foundation.h>
#import <mach/mach.h>
#import <mach/processor_info.h>
#import "MMTelemetryProvider.h"
NS_ASSUME_NONNULL_BEGIN
/**
* MMCPULoadProvider
* Samples real-time Mach host processor CPU load ticks, per-core utilization percentages,
* and CPU operating frequency.
*/
@interface MMCPULoadProvider : NSObject <MMTelemetryProvider>
@property (nonatomic, readonly) natural_t coreCount;
/**
* Static calculator method facilitating deterministic unit testing with mock tick data.
*/
+ (NSDictionary<NSString *, id> *)calculateLoadFromPreviousTicks:(const struct processor_cpu_load_info * _Nullable)prevTicks
currentTicks:(const struct processor_cpu_load_info *)currTicks
coreCount:(natural_t)coreCount;
@end
NS_ASSUME_NONNULL_END
#endif /* MMCPULoadProvider_h */