Files
2025-08-30 18:55:20 -04:00

45 lines
1.2 KiB
C#

namespace QemuVmManager.Models;
public enum VmState
{
Stopped,
Starting,
Running,
Paused,
Stopping,
Error
}
public class VmStatus
{
public string Name { get; set; } = string.Empty;
public VmState State { get; set; } = VmState.Stopped;
public int ProcessId { get; set; } = -1;
public DateTime? StartedAt { get; set; }
public DateTime? StoppedAt { get; set; }
public string? ErrorMessage { get; set; }
public VmResourceUsage? ResourceUsage { get; set; }
}
public class VmResourceUsage
{
public double CpuUsage { get; set; } = 0.0; // Percentage
public long MemoryUsage { get; set; } = 0; // MB
public long DiskUsage { get; set; } = 0; // MB
public long NetworkRx { get; set; } = 0; // Bytes
public long NetworkTx { get; set; } = 0; // Bytes
}
public class VmPerformanceMetrics
{
public DateTime Timestamp { get; set; }
public int ProcessId { get; set; }
public double CpuUsagePercent { get; set; }
public double SystemCpuUsagePercent { get; set; }
public long MemoryUsageMB { get; set; }
public long PrivateMemoryMB { get; set; }
public long VirtualMemoryMB { get; set; }
public int ThreadCount { get; set; }
public int HandleCount { get; set; }
}