49 lines
1.8 KiB
Go
49 lines
1.8 KiB
Go
package models
|
|
|
|
// Process represents a single running process with its relevant details.
|
|
type Process struct {
|
|
PID int `json:"pid"`
|
|
Name string `json:"name"`
|
|
CPU float64 `json:"cpu"` // CPU usage percentage
|
|
Memory float64 `json:"memory"` // Memory usage in MB
|
|
// Add other fields if needed, e.g., User, Status, Path
|
|
}
|
|
|
|
// ProcessManagerService defines the interface for interacting with the system's process manager.
|
|
// This will be implemented by a struct that calls pkg/system/processmanager.
|
|
type ProcessManagerService interface {
|
|
GetProcesses() ([]Process, error)
|
|
KillProcess(pid int) error
|
|
}
|
|
|
|
// TODO: Implement a concrete ProcessManagerService that uses pkg/system/processmanager.
|
|
// For now, we can create a mock implementation for development and testing of the UI.
|
|
|
|
// MockProcessManager is a mock implementation of ProcessManagerService for UI development.
|
|
type MockProcessManager struct{}
|
|
|
|
// GetProcesses returns a list of mock processes.
|
|
func (m *MockProcessManager) GetProcesses() ([]Process, error) {
|
|
// Return some mock data
|
|
return []Process{
|
|
{PID: 1001, Name: "SystemIdleProcess", CPU: 95.5, Memory: 0.1},
|
|
{PID: 1002, Name: "explorer.exe", CPU: 1.2, Memory: 150.7},
|
|
{PID: 1003, Name: "chrome.exe", CPU: 25.8, Memory: 512.3},
|
|
{PID: 1004, Name: "code.exe", CPU: 5.1, Memory: 350.0},
|
|
{PID: 1005, Name: "go.exe", CPU: 0.5, Memory: 80.2},
|
|
}, nil
|
|
}
|
|
|
|
// KillProcess simulates killing a process.
|
|
func (m *MockProcessManager) KillProcess(pid int) error {
|
|
// In a real implementation, this would call the system process manager.
|
|
// For mock, we just print a message or do nothing.
|
|
// fmt.Printf("Mock: Attempting to kill process %d\n", pid)
|
|
return nil
|
|
}
|
|
|
|
// NewMockProcessManager creates a new instance of MockProcessManager.
|
|
func NewMockProcessManager() ProcessManagerService {
|
|
return &MockProcessManager{}
|
|
}
|