Files
flutter_server_box/lib/data/model/server/server.dart
lollipopkit🏳️‍⚧️ 8d597294a4 feat: amd gpu (#831)
2025-07-28 22:26:29 +08:00

86 lines
2.2 KiB
Dart

import 'package:dartssh2/dartssh2.dart';
import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/data/model/app/shell_func.dart';
import 'package:server_box/data/model/server/amd.dart';
import 'package:server_box/data/model/server/battery.dart';
import 'package:server_box/data/model/server/conn.dart';
import 'package:server_box/data/model/server/cpu.dart';
import 'package:server_box/data/model/server/disk.dart';
import 'package:server_box/data/model/server/disk_smart.dart';
import 'package:server_box/data/model/server/memory.dart';
import 'package:server_box/data/model/server/net_speed.dart';
import 'package:server_box/data/model/server/nvdia.dart';
import 'package:server_box/data/model/server/sensors.dart';
import 'package:server_box/data/model/server/server_private_info.dart';
import 'package:server_box/data/model/server/system.dart';
import 'package:server_box/data/model/server/temp.dart';
class Server {
Spi spi;
ServerStatus status;
SSHClient? client;
ServerConn conn;
Server(this.spi, this.status, this.conn, {this.client});
bool get needGenClient => conn < ServerConn.connecting;
bool get canViewDetails => conn == ServerConn.finished;
String get id => spi.id;
}
class ServerStatus {
Cpus cpu;
Memory mem;
Swap swap;
List<Disk> disk;
Conn tcp;
NetSpeed netSpeed;
Temperatures temps;
SystemType system;
Err? err;
DiskIO diskIO;
List<DiskSmart> diskSmart;
List<NvidiaSmiItem>? nvidia;
List<AmdSmiItem>? amd;
final List<Battery> batteries = [];
final Map<StatusCmdType, String> more = {};
final List<SensorItem> sensors = [];
DiskUsage? diskUsage;
final Map<String, String> customCmds = {};
ServerStatus({
required this.cpu,
required this.mem,
required this.disk,
required this.tcp,
required this.netSpeed,
required this.swap,
required this.temps,
required this.system,
required this.diskIO,
this.diskSmart = const [],
this.err,
this.nvidia,
this.diskUsage,
});
}
enum ServerConn {
failed,
disconnected,
connecting,
/// Connected to server
connected,
/// Status parsing
loading,
/// Status parsing finished
finished;
bool operator <(ServerConn other) => index < other.index;
}